C语言 判断一个数是完全数
时间: 2023-11-19 16:06:58 浏览: 142
完全数是指一个正整数,它的所有因子(除了它本身)的和等于它本身。例如6是一个完全数,因为6的因子有1、2、3,1+2+3=6。
以下是C语言程序,用于判断一个数是否为完全数:
```c
#include <stdio.h>
int main()
{
int num, sum = 0;
printf("请输入一个整数:");
scanf("%d", &num);
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
printf("%d是完全数\n", num);
} else {
printf("%d不是完全数\n", num);
}
return 0;
}
```
程序首先要求用户输入一个整数,然后使用for循环来计算该数的所有因子的和(除了它本身)。如果这个和等于该数本身,则它是一个完全数,否则它不是完全数。
相关问题
c语言判断一个数是否为完全平方数
可以使用数学库中的sqrt()函数来计算这个数的平方根,然后判断平方根是否为整数即可。具体代码如下:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int num;
printf("请输入一个整数:");
scanf("%d", &num);
double sqrt_num = sqrt(num);
if (sqrt_num == (int)sqrt_num) {
printf("%d是完全平方数\n", num);
} else {
printf("%d不是完全平方数\n", num);
}
return 0;
}
```
c语言函数返回一个是否为完全数
好的,下面是一个判断一个数是否为完全数的 C 语言函数:
```c
#include <stdio.h>
int isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
return 1; // 是完全数
} else {
return 0; // 不是完全数
}
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (isPerfectNumber(num)) {
printf("%d是一个完全数。\n", num);
} else {
printf("%d不是一个完全数。\n", num);
}
return 0;
}
```
函数 `isPerfectNumber` 接收一个整数 `num`,计算它的因子和 `sum`。如果 `sum` 等于 `num`,则说明 `num` 是完全数,函数返回 1;否则说明 `num` 不是完全数,函数返回 0。
在 `main` 函数中,读入一个整数 `num`,调用 `isPerfectNumber` 函数判断它是否为完全数,然后输出结果。
希望以上代码能够帮到您!