/*********************************
* 日期:2013-1-31
* 作者:SJF0115
* 题号: 九度OJ 题目1060:完数VS盈数
* 来源:http://ac.jobdu.com/problem.php?pid=1060
* 结果:AC
* 来源:2000年清华大学计算机研究生机试真题
* 总结:输出结果里E:后面和G:后边各有一个空格
**********************************/
#include <stdio.h>
int main()
{
int i,j,sum;
int W[60],Y[60];
int WCount = 0,YCount = 0;
for(i = 2;i < 61;i++){
sum = 0;
for(j = 1;j < i;j++){
if(i % j == 0){
sum += j;
}
}
//一个数如果恰好等于它的各因子(该数本身除外)子和
if(sum == i){
W[WCount++] = i;
}
//若因子之和大于该数
else if(sum > i){
Y[YCount++] = i;
}
}
//完数
printf("E: ");
for(i = 0;i < WCount;i++){
printf("%d",W[i]);
if(i == WCount - 1){
printf("\n");
}
else{
printf(" ");
}
}
//盈数
printf("G: ");
for(i = 0;i < YCount;i++){
printf("%d",Y[i]);
if(i == YCount - 1){
printf("\n");
}
else{
printf(" ");
}
}
return 0;
}
九度OJ 题目1060:完数VS盈数
最新推荐文章于 2020-06-19 10:10:22 发布