c语言头歌输入一个整数判断n是不是完数
时间: 2024-11-27 12:21:14 浏览: 12
c语言求n个数的最大值.pdf
在C语言中,判断一个整数n是否是完数,需要先了解完数的概念。完数是指除了自身之外的所有正因数(包括1)之和等于该数本身的自然数。例如6(1+2+3=6),28(1+2+4+7+14=28)都是完数。
下面是一个简单的程序示例,用于判断一个给定的整数n是否是完数:
```c
#include <stdio.h>
int isPerfectNumber(int n) {
int sum = 0;
for (int i = 1; i * i <= n; i++) { // 只需检查到i*i <= n,因为大于这个值的因子对已经成对出现过了
if (n % i == 0) {
sum += i; // 如果i是n的因数,加入sum
if (i != n / i) { // 如果n不是i的平方,则再加另一个因数(n/i)
sum += n / i;
}
}
}
return sum == n; // 返回sum是否等于n,等于则是完数
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPerfectNumber(num)) {
printf("%d是完数.\n", num);
} else {
printf("%d不是完数.\n", num);
}
return 0;
}
```
阅读全文