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>
int main(){
int a,i,j,k=0,b[700],sum;
for(i=1;i<=700;i++){
sum=0;
for(j=1;j<=i;j++){
if(i%j==0){
sum+=j;
}
}
if(sum%i==0){
b[k]=i;
k++;
}
}
printf("%d\n",b[k-1]);
printf("%d\n",k);
for(i=0;i<k;i++){
printf("%d ",b[i]);
}
return 0;
}