题目描述
已知一个整数n,打印1—n所有除以m后所得商正好是它的各个数字平方和的数。
输入与输出要求:
输入两个整数n、m,它们用空格分开且n与m都不会超过10000。输出满足条件的整数,每5个数占一行,用tab分隔,最后一个整数后为换行符。测试用例保证有满足条件的数。
程序运行效果:
Sample 1:
1000 11↙
131 241 324 550 624
803 900 910
Sample 2:
4000 10↙
10 103 113 204 214
242 343 351 452 505
515 652 743 751 804
814 842 903 913 1196
1388 1479 1679 1788 1996
#include<stdio.h>
int main( )
{
int m,n;
int i,j,t,a;
int k=0;
scanf("%d %d",&n,&m);
for(t=1;t<=n;t++){
a=t/m;
int sum=0;
for(i=t;i>0;){
j=i%10;
sum+=j*j;
i/=10;
}if(sum==a){
printf("%d\t",t);
k++;
}if(k%5==0&&k!=0){
printf("\n");
k=0;
}
}
return 0;
}
Attention:
如果最后的if没有k=0,则会输出多次\n,因为在k=5的时候if一直循环,直到k=6.