求两数之间无暇素数c语言
时间: 2024-11-25 18:12:02 浏览: 30
在C语言中,求两个整数之间的无暇素数(也称为完美数,是指除了自身以外,所有因数加起来正好等于本身的正整数),你需要编写一段涉及循环、条件判断以及数学运算的代码。以下是简单的示例:
```c
#include <stdio.h>
// 判断是否为质数函数
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) { // 只需检查到√n,因为大于这个数的因子肯定成对存在
if (num % i == 0)
return 0;
}
return 1;
}
// 求无暇素数函数
void find_perfect_numbers(int start, int end) {
for (int i = start; i <= end; i++) {
int sum = 1; // 初始化因数和为1,包含1本身
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) { // 如果i能被j整除,则j和i/j都是因数
sum += j;
if (i / j != j) // 如果不是平方数,则另一个因数也是j
sum += i / j;
}
}
if (sum == i && is_prime(i)) { // 如果i的所有因数之和等于i并且它是质数
printf("%d 是无暇素数。\n", i);
}
}
}
int main() {
int range_start = 10; // 设定范围起始值
int range_end = 50; // 设定范围结束值
find_perfect_numbers(range_start, range_end);
return 0;
}
```
阅读全文
相关推荐
















