急求用C#编写一个程序:求2-100中的完数(因子之和等于它本身的数称为完数,如6=1+2+3)。

2024-12-03 05:03:59
推荐回答(2个)
回答1:

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

回答2:

仅供参考,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