1.一个数如果恰好等于它的因子之和,这个数就称为”完数“。如6的因子为1,2,3,而6=1+2+3,因此6是”完数“。编程序找出1000之内的所有”完数“,并按下面输出其因子:6 its factors are 1,2,3
#include <stdio.h>
int main() {
int a, b, sum;
for (a = 2; a <= 1000; a++) {
sum = 0;
for (b = 1; b < a; b++) {
if (a % b == 0) {
sum = sum + b;
}
}
if (a == sum) {
printf("%d是完数,it's factors are ", a);
for (b = 1; b < a; b++) {
if (a % b == 0) {
printf("%d,", b);
}
}
printf("\n");
}
}
}
2.
#include <stdio.h>
int main() {
int a, b, sum ;
for (a = 2; a <= 1000; a++) {
sum = 0;
for (b = 1; b < a; b++) {
if (a % b == 0) {
sum = sum + b;
}
}
if (a == sum) {
printf("%d是完数,it's factors are ", a);
for (b = 1; b < a; b++) {
if (a % b == 0) {
printf("%d,", b);
}
}
printf("\n");
}
}
}
3. 输出所有的”水仙花数“,所谓”水仙花数“是指一个三位数,其各位数字立方和等于该数本身,例如,153等于1的3次方加上5的3次方加上3的3次方。
#include <stdio.h>
int main() {
int a, b, c, sum;
for (a = 1; a <= 9; a++) {
for (b = 0; b <= 9; b++) {
for (c = 0; c <= 9; c++) {
sum = a * a * a + b * b * b + c * c * c;
if (sum >= 100 && sum <= 999 && sum == a * 100 + b * 10 + c) {
printf("%d\n", sum);
}
}
}
}
}