求两个三位数乘机是回文数的最大值
其实就是求 10000-998001之间、可由两个三位数的乘机的最大回文数
abccba然后简化为:100000a + 10000b + 1000c + 100c + 10b + a然后:100001a + 10010b + 1100c分解11,得到:11(9091a + 910b + 100c)因此,回文必须可以被11整除。看到11是素数,至少有一个数字必须被11整除。
#include<stdio.h> int main() { int t,n; for(int a=9;a>=1;a--) for(int b=9;b>=0;b--) for(int c=9;c>=0;c--) { t=a+b*10+c*100+c*1000+b*10000+a*100000; n=t; if(t>999*999) continue; for(int i=990 ; i>99 ; i-=11) { if(t%i==0) { n=t/i; if(n<1000) { printf("%d ",t); return 0; } } } } }