点赞(0)
 

0.0分

311 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 135 条评论

Sandwiches 1年前 回复TA
#include<stdio.h>
int main()
{
	int N, i, j;
	scanf("%d", &N);
	for (i = 2; i <= 1000; i++) {
		int sum = 0;
		for (j = 1; j <= i - 1; j++) {
			if (i % j == 0) {
				sum += j;

			}
		}
		if (sum == i) {
			printf("%d its factors are ", i);
			for (j = 1; j <= i - 1; j++) {
				if (i % j == 0) {
					printf("%d ", j);
				}
			}
			printf("\n");

		}

	}
}
    求个大佬!
 这个运行结果和题目的样例一样,为什么错误啊
勇敢冲 1年前 回复TA
@Lexus 数组是从0开始的,0-k-1
Lexus 1年前 回复TA
请问为什么l取不到k呀
来碗牛杂 1年前 回复TA
超时了捏
离开有你的季节 1年前 回复TA
#include<stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    for (int i = 1; i <= a; i++)
    {
        int b = 0;
        for (int j = 1; j < i; j++)
        {
            if (i % j == 0)
            {
                b += j;
            }
        }
        if (b == i)
        {
            printf("%d its factors are ", i);
            for (int k = 1; k < i; k++)
            {
                if (i % k == 0)
                {
                    printf("%d ",k);
                }
              
            }
            printf("\n");
        }
    }
    return 0;
}
不负此生 1年前 回复TA
#include<stdio.h>
int main()
{
	int n,i,s,a[100],m;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{  
		s=m=0;
		for(int k=1;k<i;k++)
		{
			if(i%k==0)
			{
				a[m]=k;
				s+=a[m];
				m++;
		     }
		}
		if(s==i)
		{
			printf("%d its factors are ",i);
			for(int z=0;z<m;z++)
			{
				printf("%d ",a[z]);
			}
			printf("\n");
		}
	}
	getchar();
	getchar();
	return 0;
}//不知道为什么我的时间超限了
南初 1年前 回复TA
@幸 if(test(i,a)==0)这里,人家求的是1000内的所有完数,不是求1000这个数。要双循环做
1年前 回复TA
有大佬指点为什么错了么,运行测试都没问题,没明白
#include<stdio.h>
int test(int x,int y)
{
    if(y%x==0)
        return 0;
    else
        return 1;
}
int main()
{
    int a,sum=0,b[100]={0},c=0;
    scanf("%d",&a);
    for(int i=1;i<a;i++)
    {
    if(test(i,a) == 0)
    {
        b[c]=i;
        sum += i;
        c++;
    }
    }
    if(sum == a)
    {
        printf("%d its factors are ",a);
        for(int i=0;i<c;i++)
        printf("%d ",b[i]);
    }
    return 0;
}
TNT 1年前 回复TA
#include<stdio.h>
int main()
{
    int N,i,j,sn,s[1000],k,l;
    scanf("%d", &N);
    for(i=2;i<=N;i++)
    {
        for(sn=0,j=1,k=0;j<=i/2;j++)//变成到i/2可以不超时
        {
            if((i%j)==0) 
            {
                sn=sn+j;
                s[k++]=j;
            }
        }
        if(sn==i)
        {
            printf("%d its factors are ",i);
            for(l=0;l<k;l++)
            {printf("%d ",s[l]);}
            printf("\n");
        }
        
    }
    return 0;
}
1年前 回复TA
@WBGtheshy 宏定义意思等同于max = 1001,如果下面用的比较的宏定义是很方便的