排它平方数 - 永不冷�龅娜松�
小明正看着 203879 这个数字发呆。 原来,203879 * 203879 = 41566646641这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
小明正看着 203879 这个数字发呆。 原来,203879 * 203879 = 41566646641这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
- 6位正整数
- 每个数位上的数字不同
- 其平方数的每个数位不含原数字的任何组成数位
int judge(long i) { long temp = i; int t[10] = {0}; for(int m=0;m<6;m++) { int j = i%10; t[j]++; i/=10; } for (int m=0; m<10; m++) { if(t[m]>1) return 0; } //判断平方数 int p = 0; for(long n=temp*temp; n!=0 ;p++) { if(t[n%10]!=0) return 0; n/=10; } return 1; } int main() { for (long i=1000000;i<999999;i++) { if(judge(i)) { printf("%ld\n",i); } } }Read full article from 排它平方数 - 永不冷�龅娜松�