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("%d\n%d\n",max,i1);
for(;;i2++)
{
printf("%d",a[i2]);
if(i2<i1-1)
{
printf(" ");
}
else
{
break;
}
}
}