描述
给定一个十进制正整数,判断其是否为同构数。所谓同构数是这样的一些数,它出现在其平方数的右边,例如5是出现在52=25右边的数,25是出现在252=625右边的数,所以5和25都是同构数。
输入
输入数据有若干行。每行上有一个正整数,对应一种情形。
输出
对于每一种情形,先输出“Case #: ”(#为序号,从1起),然后输出n,逗号及空格,n的平方,逗号及空格,结果(Yes或No),换行。
样例输入1
5
15
25
样例输出1
Case 1: 5, 25, Yes
Case 2: 15, 225, No
Case 3: 25, 625, Yes
C实现:
#include<stdio.h>
int main(){
int n,n2,m,len,i,s;
int j=1;
while(scanf("%d",&n)==1){
n2=n;
m=n*n;
i=0;
while(n!=0){
n/=10;
i++;
}
s=1;
for(int k=1;k<=i;k++) s*=10;
if(m%s==n2)
printf("Case %d: %d, %d, Yes\n",j,n2,m);
else
printf("Case %d: %d, %d, No\n",j,n2,m);
j++;
}
return 0;
}