蓝桥杯-算法训练-8-2求完数

题目


问题描述
  如果一个自然数的所有小于自身的因子之和等于该数,则称为完数。设计算法,打印1-9999之间的所有完数。
样例输出
在这里插入图片描述


思路

内层循环一直判断能否被除尽,能就累加,内层循环完判断是否等于i,等于就输出i。
对于完数我不知道还有没有更优的解,目前只想到这种。


代码

#include <stdio.h>
#include<math.h>
int main()
{
    
        
	int i,j;
	
	for(i=1;i<10000;i++){
    
    
		int num=0;
		for(j=1;j<i;j++){
    
    
			if(i%j==0){
    
    
				num+=j;
			}
		}
		if(num==i)
		printf("%d\n",i);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/mjh1667002013/article/details/114458003