从999999向下走,判断1:有没有3位数3位数的因子2:是不是回文
#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
#include <cmath>
#include <algorithm>
#define inf 0x3f3f3f3f
#define sd(a) scanf("%d",&a)
#define mem0(a) memset(a,0,sizeof(a))
typedef long long ll;
const int mod = 998244353;
const int maxn = 1e7+10;
int a[maxn];
using namespace std;
bool isPrime(int x)
{
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
return false;
}
return true;
}
bool MaxFactor3(int x)
{
int up = sqrt(x);
//cout<<up<<endl;
int Max = -1;
for(int i = 100;i <= 999;i++)
if(x%i == 0)
if(x/i<=999&&x/i>=100)return true;
return false;
}
bool ispalindrome(int x)
{
int cur = 0;
while(x!=0)
{
a[cur++] = x%10;
x/=10;
}
if(cur%2 == 0)
for(int i = 0;i < cur/2;i++)
if(a[i]!=a[cur-i-1])return false;
else
for(int i = 0;i < cur/2+1;i++)
if(a[i]!=a[cur-i-1])return false;
return true;
}
int main()
{
int num = 999*999;
for(int i = num;i >= 100*100;i--)
{
if(ispalindrome(i)&&MaxFactor3(i))
{
cout<<i<<endl;
cout<<MaxFactor3(i)<<endl;
break;
}
}
cout<<ispalindrome(num)<<endl;
return 0;
}