您的位置:首页 > 职场人生

算法练习:水仙花数、完全数、相亲数

2007-01-31 11:41 316 查看
输出所有水仙花数

一个三位数,每位的立方之和为其数本身

1

for (int i = 100; i <= 999; i++)

2





{

3


4

if (Math.Pow(i / 100, 3) +

5

Math.Pow((i / 10) - (i / 100) * 10, 3) +

6

Math.Pow(i - i / 10 * 10, 3) == i)

7





{

8

System.Console.WriteLine(

9

"{0}:[{1}|{2}|{3}]", i, i / 100, (i / 10) - (i / 100) * 10, i - i / 10 * 10);

10

}

11

}

输出10000以内的完全数

又称完美数,它是指真因子之和等于自身的自然数

1

for (int i = 1; i <= 10000; i++)

2





{

3

int k = 0;

4

for (int j = 1; j <= i - 1; j++)

5





{

6

if ((i % j) == 0)

7





{

8

k += j;

9

}

10

}

11

if (k == i)

12





{

13

System.Console.WriteLine(i);

14

}

15

}

输出10000以内的相亲数

两个正整数,X的真因子之和等于Y的真因子之和

1

for (int i = 1; i <= 10000; i++)

2





{

3

int x = i;//X为初值

4

int y = 0;

5

for (int j = 1; j <= x - 1; j++)//计算X的真因子

6





{

7

if ((x % j) == 0)

8





{ y += j; }

9

}//Y=X的真因子之合

10

if (y == x)//完美数

11





{ continue; }

12

x = 0;

13

for (int j = 1; j <= y - 1; j++)//计算Y的真因子

14





{

15

if ((y % j) == 0)

16





{ x += j; }

17

}//X=Y的真因子之合

18

if (x == i)

19





{

20

System.Console.WriteLine("{0}--{1}", x, y);

21

}

22

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息