点赞(0)
 

0.0分

24 人评分

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

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

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

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

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

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

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

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

评论列表 共有 14 条评论

本山锅锅 10月前 回复TA
#include <stdio.h>
int main(){
	int N;
	scanf("%d",&N);
	int number[N];
	int i,j,sum=0;
	for(i=0;i<N;i++){
		number[i]=i+4;
		sum=0;
		for(j=1;j<number[i];j++){
			if(number[i]%j==0){
				sum+=j;
				if(number[i]==sum){
					printf("%d\n",number[i]);
				}
			}
		}
	}
	return 0;
}
各位大佬,能不能帮忙看看,当我键入N=1000的时候,会多一个24出来,其他的结果和题目给的例子是符合的,想知道是哪里出了问题
crj 11月前 回复TA
#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n); 
	int arr[100] = { 0 };
	for (int i = 6; i <= n; i++)
	{
		int c = 0,d=0;
		for (int j = i; j >= 2; j--)
		{
			if (i % j == 0)
			{
				arr[c++] = i / j;
				d += (i / j);
			}
		}
		if (d == i)
		{
			printf("%d its factors are ", i);
			for (int e = 0; e < c; e++)
			{
				printf("%d ", arr[e]);
			}
			printf("\n");
		}
	}
	return 0;
}
就这样
纸农 1年前 回复TA
#include<stdio.h>
void isFac(int num)
{
    int sum=1;
    for(int i=2;i<num;i++) 
        if(num%i==0)
            sum+=i;   
        if(num==sum)
        {
            printf("%d its factors are ",num);
            for(int i=1;i<num;i++)
                if(num%i==0)
                    printf("%d ",i);
            printf("\n");
        }            
}

int main()
{
    int N;
    scanf("%d",&N);
    for(int i=2;i<=N;i++)
        isFac(i);
    return 0;
}
keheia 1年前 回复TA
#include <stdio.h>
int main(){
	int sum=1, i=2,y=2,N=0;
	scanf("%d",&N);
	for(i;i<=N;i++){
		sum=1;
		y=2;
		for(y;y<i;y++){
			if(i%y==0&&i!=y){
				sum+=y;
			}
		}
		if(i==sum){
			printf("%d its factors are",i);
			y=1;
			for(y;y<i;y++){
				if(i%y==0){
					printf(" %d",y);
				}
			}
			printf("\n");
		}
	}
}
675 1年前 回复TA
@林人夕 #include<stdio.h>  int main() { 	int str[1000];				//定义一个数组用来储存因子 	int flag = 0,N,Sn = 0;			//flag--作为数组的下标 Sn用以求因子之和 N作为键盘键入的接收数据 	scanf_s("%d", &N);  	for (int i = 1; i <= N; i++)				//最外面的循环是为了遍历所有小于等于N的数, 	{ 		for (int j = 1; j < i; j++)				//求因子的循环 		{ 			if (i % j == 0) 			{ 				str[flag] = j; 				flag++; 			} 		} 		for (int k = 0; k < flag; k++)			//求和循环 		{ 			Sn += str[k]; 		}  		if (i == Sn)							//完数对比 		{ 			printf("%d its factors are ", i); 			for (int m = 0; m < flag; m++) 			{ 				printf("%d ", str[m]); 			} 			printf("
"); 			Sn = 0; 			flag = 0; 		} 		else 		{ 			Sn = 0; 			flag = 0; 		}  	}  	return 0; }
蓼蓝 1年前 回复TA
@林人夕 少了一层循环,每次只能判断一个数,题目要求是判断某个数以下所有数
梧高凤必至 1年前 回复TA
@关 还有你这个只判断了N那个数
愿祥FIRM 1年前 回复TA
@林人夕 他把i设置成了输入的那个变量1000了,后面又想输出一个关于i的循环,那肯定不行呗
王文萱 1年前 回复TA
@林人夕 怎么没有i循环
林人夕 1年前 回复TA
#include<stdio.h>
int main()
{
   int i,j,k=0,a[1001],n=0;
   scanf("%d",&i);
   for(j=1;j<i;j++)
   {
       if(i%j==0)
        {
            k+=j;
            a[n]=j;
            n++;
        }

   }
   if(i==k)
   {
       printf("%d its factors are",i);
       for(j=0;j<n;j++)
        printf(" %d",a[j]);
   }
   else printf("its is not ");
    return 0;
}
我这个错哪了呀?