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("%dn",b[k-1]);printf("%dn",k);for(i=0;i<k;i++){printf("%d ",b[i]);}return 0; }
12345678910111213141516171819202122'