欧拉项目第四题之三位数之积数的最大回数

求两个三位数乘机是回文数的最大值

其实就是求 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\n",t);
                    return 0;
                }
            }
        }
    }
}

 

posted @ 2018-05-10 22:19  shuai_hui  阅读(290)  评论(0编辑  收藏  举报