-
*一个数字正好等于其因数之和。 6=1+2+3*/
包括 *头文件*
int wanshu(int x) *判断 x 是否完整*
int i,sum=0;
int factor[n]=;
for(i=1;i<=x;i++) *将所有 x 的因数相加*
if(x%i==0) sum=sum+i;
continue;
if(sum==x*2) return(1);如果总和结果等于 2x,则 x 为完成
else return(0);*否则,它不完整*
完成判断功能结束*
int print factor(int x) *打印结果*
int i,j,res[n]=;*i,j 是循环变量。 res 数组记录每个因子。 */
for(i=1;iif(x%i==0) res[i]=i;
continue;
printf("%d 其因素是:",x);*打印提示*
for(j=0;jif(res[j]!=0)
printf("%d",res[j]);
printf("\,");
printf("");
return(0);
打印结束功能*
int main() main 函数
int i;*循环变量*
for(i=1;i<=n;i++) *循环查找所有小于 n 的完成并输出其因子。*/
if(wanshu(i)) print_factor(i);
continue;
return 0;
主要功能结束*
-
它太长了,比书上写的要长好几倍......
-
完美数,又称完美数或完美数,是一些特殊的自然数。 其所有真实因数(即除数以外的除数)的总和(即因数的函数)正好等于自身。
根据这个定义,判断完成度的函数可以得到如下:
#include
int 是完美数(int n) 根据这个函数,你只需要遍历需要打印的 2 2000 的范围,并逐个调用该函数,如果返回 1,则打印。
全文如下:
#include
int is_perfect_number(int n)int main()