求助:同构数
同构数是指一个数的平方的尾数等于该数本身。如: 0^2 = 0
1^2 =1
5^2 =25
从键盘上输入k,输出第k个同构数。
这个应该怎么做呢?
#include<stdio.h> main() { printf("please input the number(integer):\n"); int a; scanf("%d",&a); int b=a*a-a; int c=a,d=b; while((c=c/10)!=0) { if(d%10!=0) { printf("%d no %d*%d=%d",a,a,a,a*a); // return; } d=d/10; } if(d%10!=0) printf("%d no %d*%d=%d\n",a,a,a,a*a); else printf("%d yes %d*%d=%d\n",a,a,a,a*a); }
#include <stdio.h> int main() { int a,b,c,d; scanf("%d",&d); for(b=1;c=b;b++) { for(a=10;(c/=10)?(a*=10):0;) ; //计算基数的位数 if((b*b)%a==b) --d; if(!d) break; } printf("%d",b); return 0; }