天天看点

蓝桥杯-算法训练-8-2求完数题目思路代码

题目

问题描述

  如果一个自然数的所有小于自身的因子之和等于该数,则称为完数。设计算法,打印1-9999之间的所有完数。

样例输出

蓝桥杯-算法训练-8-2求完数题目思路代码

思路

内层循环一直判断能否被除尽,能就累加,内层循环完判断是否等于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;
}
           

继续阅读