您的位置:首页 > 其它

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

2007-01-31 11:41 288 查看
输出所有水仙花数
一个三位数,每位的立方之和为其数本身

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

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