C#程序:
using System;
class Program
{
static void Main()
{
int i, num, sum;
Console.WriteLine("2-100之间的完数一览:");
for (num = 2; num <= 100; num++)
{
sum=1;
for (i = 2; i <= num / 2; i++)
if (num % i == 0)
sum += i;
if (sum == num)
Console.WriteLine(num);
}
}
}
运行测试:
2-100之间的完数一览:
6
28
仅供参考,1000以内的:
//一个数如果恰好等于它的因子之和,这个数就称为“完数”。
//例如6的因子为1、2、3,而6=1+2+3,因此6是“完数”,
//编程找出1000以内的所有完数:
#include
void main()
{
int x, i, sum;
x = 1;
while(x <= 1000) { //x要从1到1000循环。
sum = 0; //每算一个新的x时,sum要清0
for(i = 1; i < x; i++) if(x % i == 0) sum += i; //如果i是x的因子,sum加上i
if(x == sum) printf("%d\n", x); //如果因子和等于本身
x++;
}
}
程序运行结果:
6
28
496