已知一个整数n,打印1到n所有除以m后所得商正好是它的各个数字平方和的数。
输入格式:
为两个用空格分隔的整数,它们依次代表n、m(1<m,n<10000)。
输出格式:
按从小到大的顺序依次输出所有满足条件的整数,每个数占一行。测试用例保证有满足条件的数。
输入样例:
1000 11
输出样例:
131
241
324
550
624
803
900
910
答案如下:
#include<stdio.h>
#include<stdlib.h>
int sum_of_squares(int n);//求各数字平方和
int main(void)
{
int n,m;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
if(i/m==sum_of_squares(i))
printf("%d\n",i);
}
system("pause");
return 0;
}
int sum_of_squares(int n)
{
int t,sum=0;
while(n>=10)
{
t=n%10;
n/=10;
sum+=t*t;
}
sum+=n*n;
return sum;
}