回文数
时间限制:
1000
ms | 内存限制:
65535
KB
难度:
0
-
描述
-
请寻找并输出1至1000000之间的数m,它满足m、m^2和m^3均为回文数。回文数大家都知道吧,就是各位数字左右对称的整数,例如121、676、123321等。满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。
-
输入
- 没有输入 输出
- 输出1至1000000之间满足要求的全部回文数,每两个数之间用空格隔开,每行输出五个数 样例输入
- 样例输出
思路:注意范围,因为m^3可能超出了int型所能表示的范围。
#include <stdio.h>
int isreverse(long long n)
{
long long m = n,k=0;
while (m != 0)
{
k = 10*k + m % 10;
m /= 10;
}
return (k == n);
}
int main()
{
long long i,j=0;
for (i=1; i<= 1000000; i++)
{
if (isreverse(i) && isreverse(i*i) && isreverse(i*i*i))
{
printf("%d ",i);
j++;
if (j % 5 == 0)
{
printf("\n");
}
}
}
printf("\n");
}