Project Euler Problem 7: 10001st prime
2017-03-19 15:02
369 查看
10001st prime
Problem 7
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?
C++:
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 10001;
int prime[MAXN+1] = {2, 3};
bool isprime(int n)
{
int q=sqrt(n), i=1;
while(prime[i] <= q)
if(n % prime[i] == 0)
return false;
else
i++;
return true;
}
void maketable(int n)
{
int i = 2, val = 5;
while(i < n) {
if(isprime(val))
prime[i++] = val;
val += 2;
}
}
int main()
{
int n;
maketable(MAXN);
while(cin >> n)
cout << prime[n - 1] << endl;
return 0;
}
C++:
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 10001;
int prime[MAXN+2] = {2, 3, 5};
bool isprime(int n)
{
int q=sqrt(n), i=1;
while(prime[i] <= q)
if(n % prime[i] == 0)
return false;
else
i++;
return true;
}
void maketable(int n)
{
int val1 = 1, val5 = 5;
for(int i=3; i<=n;) {
val1 += 6;
if(isprime(val1))
prime[i++] = val1;
val5 += 6;
if(isprime(val5))
prime[i++] = val5;
}
}
int main()
{
int n;
maketable(MAXN);
while(cin >> n)
cout << prime[n - 1] << endl;
return 0;
}
Problem 7
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?
C++:
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 10001;
int prime[MAXN+1] = {2, 3};
bool isprime(int n)
{
int q=sqrt(n), i=1;
while(prime[i] <= q)
if(n % prime[i] == 0)
return false;
else
i++;
return true;
}
void maketable(int n)
{
int i = 2, val = 5;
while(i < n) {
if(isprime(val))
prime[i++] = val;
val += 2;
}
}
int main()
{
int n;
maketable(MAXN);
while(cin >> n)
cout << prime[n - 1] << endl;
return 0;
}
C++:
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 10001;
int prime[MAXN+2] = {2, 3, 5};
bool isprime(int n)
{
int q=sqrt(n), i=1;
while(prime[i] <= q)
if(n % prime[i] == 0)
return false;
else
i++;
return true;
}
void maketable(int n)
{
int val1 = 1, val5 = 5;
for(int i=3; i<=n;) {
val1 += 6;
if(isprime(val1))
prime[i++] = val1;
val5 += 6;
if(isprime(val5))
prime[i++] = val5;
}
}
int main()
{
int n;
maketable(MAXN);
while(cin >> n)
cout << prime[n - 1] << endl;
return 0;
}
相关文章推荐
- Project Euler Problem 118 Pandigital prime sets
- Project Euler Problem 41 Pandigital prime
- Project Euler Problem 3 - Largest prime factor
- Project Euler Problem 543 Prime-Sum Numbers
- Project Euler Problem 3: Largest prime factor
- Matlab 编程 Project Euler Problem 21 Amicable numbers
- project euler Problem 53
- project euler Problem 18 & 36
- http://projecteuler.net/problem=28 [Answer:669171001]
- Project Euler Problem 66
- Problem 7:10001st prime
- Project Euler -> problem 4
- Project Euler problem 63
- Project euler problem 21找合适的一对数之总和
- project euler problem 35求一个数的所有循环数都是素数的总共有多少个
- Project Euler Problem 50
- Project Euler Problem 32
- Project Euler problem 16
- Project Euler problem 26 分数化小数
- Project Euler problem 48 处理乘法取模爆long long的方法