3_7红玫瑰数
Time Limit:1000MS Memory Limit:65536K
Total Submit:2256 Accepted:804
Description
若正整数N的所有因子之和等于N的倍数,则称N为红玫瑰数,如28的因子之和为1+2+4+7+14+28=56=28*2,故28是红玫瑰数,求:
(1)[1,700]之间最大的红玫瑰数。
(2)[1,700]之间有多少个红玫瑰数。
Input
无
Output
第一行输出一个整数,代表[1,700]之间最大的红玫瑰数。
第二行输出一个整数,代表[1,700]之间有多少个红玫瑰数。
第三行从小到大输出[1,700]之间的所有红玫瑰数,每两个数之间用空格隔开。
Sample Input
无
Sample Output
672 6 1,,,,
Source
#include <stdio.h> #include <math.h> void main() { int max,sum=0,r=1,x,i1=0,i2=0;int a[10];for(;r<=700;r++){for(sum=0,x=1;x<=r;x++){if(r%x==0){sum=sum+x;}}if(sum%r==0){a[i1]=r;max=r;i1++; }}printf("%dn%dn",max,i1);for(;;i2++){printf("%d",a[i2]);if(i2<i1-1){printf(" ");}else{break;}} }