Advertisement

编写程序找出小于1000的所有完数

阅读量:

题目:当某一数值恰好与其所有因数的总和相等时,该数值可被定义为“完数”。例如,6的因数包括1、2、3,其总和正好等于6。请编写程序,用于识别1000范围内的所有完数。
上代码:

复制代码
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int i,j;
    	static int goal;
    	for(i=1;i<=1000;i++)
    	{
    		for(j=1;j<i;j++)//这里一定是j<i而不是j<=i因为完数因子是不包括本身的,如果包括本身就不可能存在这样的完数的。
    		{
    			if(i%j==0)
    			{
    				goal=goal+j;
    			}
    		}
    		if(goal==i)
    		{	
    			printf("%d ",goal);	
    		}
    		goal=0;	
    	}
    	return 0;
    }
    
    
    AI写代码c

全部评论 (0)

还没有任何评论哟~