问题描述
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
预置代码
#include<stdio.h>
void Solve(int);
/*fact函数
如果整数n是完数,则返回1;否则返回0。
把n的每个因子放在一维数组a中。
*len是数组a的长度。
*/
int fact(int n, int a[], int *len);
int main()
{
int n;
while(scanf("%d", &n)!=EOF){
Solve(n);
}
return 0;
}输入
测试数据有多个,每个测试数据是一个单独的整数n。输出
对每个测试数据n,
(1)如果n是完数,则输出它,并且输出它的因子。输出样式如下
Yes, its factors are 1 2 3
每个因子后面都有一个空格。
(2)如果不是完数,则输出:
No
每个测试数据的输出占单独的一行。
输入样列
6
100
输出样例
Yes, its factors are 1 2 3
No
qq_遁去的一_1
相关分类