用c++写一个完数代码
时间: 2023-03-20 11:02:48 浏览: 93
以下是用 C 语言编写的求完数的代码:
```
#include <stdio.h>
int main() {
int n, i, sum;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 1, sum = 0; i < n; i++) {
if (n % i == 0) {
sum += i;
}
}
if (sum == n) {
printf("%d是完数\n", n);
} else {
printf("%d不是完数\n", n);
}
return 0;
}
```
该程序要求用户输入一个正整数,然后使用循环结构求出该数的因子,并计算这些因子的和。如果和等于该数本身,则说明该数为完数,否则不是完数。程序输出结果,告诉用户输入的数是不是完数。
相关问题
用devc++写一个求出1-n中所有完数的代码
以下是使用 Dev-C++ 编写的求解1-n中所有完数的代码:
```c++
#include <stdio.h>
int main()
{
int i, j, sum;
for(i = 1; i <= 1000; i++)
{
sum = 0;
for(j = 1; j <= i/2; j++)
{
if(i % j == 0)
sum += j;
}
if(sum == i)
{
printf("%d ", i);
}
}
return 0;
}
```
该程序可以求出1-1000中的所有完数,如果需要求其他区间的完数,只需修改程序中的循环范围即可。
c++求1000以内的完数用子函数实现
以下是C++求1000以内的完数用子函数实现的代码:
```c++
#include <iostream>
using namespace std;
int factorSum(int num) { // 定义一个求因子和的函数
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
for (int i = 2; i <= 1000; i++) {
if (i == factorSum(i)) { // 如果i等于它的因子和
cout << i << " its factors are ";
for (int j = 1; j < i; j++) {
if (i % j == 0) {
cout << j << ",";
}
}
cout << endl;
}
}
return 0;
}
```