ProjectEuler 7. 10001st Prime

时间:2019-06-18 23:29:07

标签: python

通过列出前六个质数:2、3、5、7、11和13,我们可以看到第6个质数是13。

第10 001个素数是什么?


k = 10001
b = 2
for i in range(2, 100000):
    if i % 2 != 0 and i % 3 != 0:
        b += 1
        if b == k:
            print(i)

我希望输出104743,但实际输出是29999。为什么?

如果k为6,我得到13的输出,这是正确的。但是,如果k为10001,我将得到29999,这是错误的。

2 个答案:

答案 0 :(得分:0)

answer python ProjectEuler问题11

def main():
    number_prime_to_find = 10001
    x = 2
    list_of_primes = []
    while(len(list_of_primes) < number_prime_to_find):
        if all(x % prime for prime in list_of_primes):
            list_of_primes.append(x)
        x += 1
    print('The answer is :' , list_of_primes[-1])
main()

答案 1 :(得分:-1)

尝试此Java代码

import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int[] arr = new int[10000000];
        for(int i=2;i<10000000;i++)
        {
            arr[i]=i;
        }
        for(int i=2;i<10000000;i++)
            for(int j=i+i;j<10000000;j+=i)
                arr[j]=0;

        int t = in.nextInt();
        for(int a0 = 0; a0 < t; a0++){
            int n = in.nextInt();
            int count=0;
            for(int j=2;j<10000000;j++)
            {
                if(arr[j]!=0)
                {
                    count++;
                    if(count==n)
                    {
                        System.out.println(j);
                        break;
                    }
                }
            }
        }
    }
}

see this