【欧拉计划】27. Quadratic primes

(本题取 $n=1000$)

【思路】由于范围不大,因而可以直接 $\mathcal O(n^2)$ 枚举,然后套上质数的判断即可。由于待判断的数大小不确定,因而用质数判断函数来代替欧拉筛:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdio.h>
#include<stdbool.h>
int maxn,ans;
bool prime(int x)
{
if(x<2)return false;
if(x==2||x==3||x==5)return true;
if(x%2==0||x%3==0||x%5==0)return false;
for(int a=7,b=11;a*a<=x;a+=6,b+=6)if(x%a==0||x%b==0)return false;
return true;
}
int main()
{
for(int a=-999;a<=999;++a)
{
for(int b=-1000;b<=1000;++b)
{
int n=0;
while(prime(n*n+a*n+b))++n;
if(n>maxn)
{
maxn=n;
ans=a*b;
}
}
}
printf("%d",ans);
return 0;
}

【欧拉计划】27. Quadratic primes

https://hensier.github.io/projecteuler/27/

作者

hensier

发布于

2022-05-01

更新于

2023-01-02

许可协议

评论