解法
nが偶数のときは2になることに注意するだけです。
#include <iostream>
#include <stdio.h>
using namespace std;
bool is_prime(long long int n){
if(n<2)return false;
if(n==2)return true;
for(long long int i=2;i*i<=n;i+=1+(i&1)){
if(n%i==0)return false;
}
return true;
}
const long long int L1=100000;
int main() {
long long int p=5;
long long int n=3;
while(1){
if(((2*p*n)%(p*p))>L1*L1){
break;
}
n++;
p+=2;
while(is_prime(p)==false){
p+=2;
}
n++;
p+=2;
while(is_prime(p)==false){
p+=2;
}
}
cout<<p<<" "<<n<<"\n";
return 0;
}
最終更新:2015年01月07日 08:49