编写一个控制台程序,求1000以内所有的“完数”。

完数:例如6就是一个完数,因为6=1+2+3
数上的一道题~求C#程序。

第1个回答  2008-12-27
public static void WanShu(int n)//n就是范围,这里是1000
{
if (n <= 0)
return;//参数不对
int i, num, j;
for (num = 1; num <= n; num++)本回答被提问者采纳
第2个回答  2008-12-13
public static void WanShu(int n)//n就是范围,这里是1000
{
if (n <= 0)
return;//参数不对
int i, num, j;
for (num = 1; num <= n; num++)
{
i = 0;
for (j = 1; j < num; j++)
{
if ((num % j) == 0)
{
i = i + j;
}
}
if (num == i)
{
Console.WriteLine(num);
}
}
}
第3个回答  2020-03-26
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//编写一个控制台应用程序,求1000之内的所有“完数”。所谓
//完数是指一个数恰好等于它的所有因子之和。例如,6是完数,因为6=1+2+3。
namespace _2._1完数
{
class Program
{
public static void PrintNumber()
{
int n = 1000;//1--1000之内的完数
int sum, j, i;
for (i = 1; i < n; i++)
{
sum = 0;//每次循环都要赋值为0,它是计算因子之和的
for (j = 1; j < i; j++)
{
if (i % j == 0)//表明是因子
{
sum = sum + j;
}
}
if (sum == i)//如果因子之和等于这个数本身则为完数
{
Console.WriteLine(sum);
}
}
}
static void Main(string[] args)
{
Program.PrintNumber();//类名调用静态方法
Console.Read();
}
}
}
第4个回答  2008-12-13
public static void PrintNumber()
{
int n = 1000;
int r, j, i;
for (i = 1; i < n; i++)
{
r = 0;
for (j = 1; j < i; j++)
{
if (i % j == 0)
{
r = r + j;
}
}
if (r == i)
{
Console.WriteLine(r);
r = 0;
}
}
}
相似回答