Problem C: 判断同构数(III)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 301 Solved: 98
[ Submit][ Status][ Web Board]
Description
输入若干个正整数n,输出n位的同构数。
Input
输入有多行,每行是一个正整数。
Output
输出也有多行。每行输入对应一样输出。每行输出是相应输入值作为位数的同构数。每行输出有多个数时,两两之间用一个空格隔开。
Sample Input
1
2
3
2
3
Sample Output
1 5 6
25 76
376 625
25 76
376 625
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N, i, j, t;
while(scanf("%d", &N) != EOF)
{
for(i = 1, t = 1; i <= N; i++, t *= 10);
//printf("%d", t);
for(i = t / 10; i <= t - 1; i++)
{
if(i == (i * i) % t)
{
printf("%d", i);
break;
}
} // 特殊处理输出的第一个数
for(j = i + 1; j <= t - 1; j++)
{
if(j == (j * j) % t)
printf(" %d", j);
}
printf("\n");
}
return 0;
}