#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 2000001
int bprime[MAX];
int count(int a,int b)
{
int tmp=b,n=0;
while(tmp>0&&!bprime[tmp])
{
n++;
tmp=n*n+a*n+b;
}
return n;
}
int main(void)
{
for(int i=2;i<2000;i++) //素数筛
{
if(!bprime[i]) //i为素数
for(int j=2;i*j<=MAX;j++)
bprime[i*j]=1;
}
int len=0;
int pro=0;
for(int a=-999;a<1000;a++)
{
for(int b=2;b<999;b++)
{
int tmp=count(a,b);
if(!bprime[b]&&tmp>len)
{
len=tmp;
pro=a*b;
}
}
}
cout<<pro<<" "<<len<<endl;
return 0;
}
Answer:
| -59231 |