c语言亲和数验证(验证范围1~10000)
时间: 2024-09-30 17:11:25 浏览: 315
输入整数n,输出1~n的素数
在C语言中,亲和数是一个自然数,它的所有正除数之和大于它本身。比如6就是个亲和数,因为1+2+3=6。验证1到10000范围内的每个数是否为亲和数,你需要编写一个程序,遍历这个范围,对每个数检查其除1以外的所有因子之和。
以下是一个简单的C语言函数示例,用于验证给定数字n是否为亲和数:
```c
#include <stdio.h>
// 函数声明,检查一个数是否为亲和数
int isAbundant(int num);
int main() {
int n;
printf("请输入一个1到10000之间的整数:");
scanf("%d", &n);
if (isAbundant(n)) {
printf("%d 是一个亲和数。\n", n);
} else {
printf("%d 不是亲和数。\n", n);
}
return 0;
}
// 检查num是否为亲和数
int isAbundant(int num) {
int sum = 0, i;
for (i = 2; i * i <= num; i++) { // 只需检查到√num即可,避免重复计算
if (num % i == 0) {
sum += i; // 如果是因子,加到总和中
if (i != num / i) { // 如果不是自身(防止重复计数)
sum += num / i;
}
}
}
return sum > num; // 如果sum大于num,则是亲和数
}
```
运行此程序并输入一个1到10000的数字,它会告诉你结果。
阅读全文