题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.
编程找出1000以内的所有完数。
#include <stdio.h>
int main()
{
int s,i,j,m;
for(i=1;i<=1000;i++)
{
s = 0;
/*每一次都令s = 0 .*/
for(j=1;j<i;j++)
if(i%j == 0) /*求出 i 的因子 */
s+=j; /*把这些因子加起来 */
if(s==i) /*如果这些因子的和等于 i */
{
printf("%d its fac are",s); /*目前为止找到了完数,下面是输出它的因子*/
for(m=1;m<s;m++)
{
if(s%m == 0)
printf("%d ",m);
}
printf("\n"); /*每输出一个完数,及它的因子后,换行*/
}
}
return 0;
}
if(i%j == 0) /*求出 i 的因子 */
s+=j; /*把这些因子加起来 */
if(s==i) /*如果这些因子的和等于 i */
{
printf("%d its fac are",s); /*目前为止找到了完数,下面是输出它的因子*/
for(m=1;m<s;m++)
{
if(s%m == 0)
printf("%d ",m);
}
printf("\n"); /*每输出一个完数,及它的因子后,换行*/
}
}
return 0;
}