对于像我这样刚开始编程的,每天做一点这样类型的题还是很有意思哒。
题目:亲密数
如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
程序如下:
#include <stdio.h>
int main()
{
int a, b, i, j;
for (a = 1; a < 3000; a++)
{
for (b = 0, i = 1; i <= a / 2; i++)
{
if (0 == a % i)
{
b = b + i;
}
}
for (j = 0, i = 1; i <= b / 2; i++)
{
if (0 == b % i)
{
j = j + i;
}
}
if (j == a && a > b)
{
printf("the pair of numbers are: %d, %d\n", a, b);
}
}
return 0;
}
运行结果如下:
the pair of numbers are: 284, 220
the pair of numbers are: 1210, 1184
the pair of numbers are: 2924, 2620