一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,且6=1+2+3,因此6是完数。
输入
一个正整数n
输出
判断n是否为完数。如果是,则输出Yes和它的所有因子;否则,输出No
#include<stdio.h>
using namespace std;
int main() {
int n,s=0;
scanf("%d",&n);
for(int i=1; i<n; i++)
if(n%i==0) s+=i;
if(s==n) {
for(int i=1; i<n; i++)
if(n%i==0) printf("%d ",i);
}else printf("no");
return 0;
}
觉得有用的话采纳一下哈
#include <iostream>
using namespace std;
bool isW(int n)
{
long long sum = 0;
for(int i = 1;i < n;i++)
{
if(n % i == 0) sum += i;
}
return sum == n;//这里返回的是一个布尔值,为true则是。
}
int main()
{
int n;
cin >> n;
if(!isW(n)) cout << "no";
else
{
cout << "yes" << endl;
for(int i = 1;i < n;i++)
{
if(n % i == 0) cout << i << " ";
}
}
return 0;
}
觉得有用的话请采纳吧,你的采纳是对这个学生党最大的帮助和鼓励!