網頁

2017年6月13日 星期二

C++利用篩法算到10^9有幾個質數

C++利用篩法算到10^9有幾個質數

26 則留言:

  1. B10333086 陳晏堂2017年6月13日 上午9:59

    #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    #include <vector> //
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)//
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool>& isPrime, int n, vector<int>& prime)//
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count++;
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");

    回覆刪除
  2. #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    #include <vector>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool>& isPrime, int n, vector<int>& prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  3. B10333106 劉郁芃2017年6月13日 上午10:03

    #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    #include <vector>>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool>& isPrime, int n, vector<int>& prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime(n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  4. B10333107-曾詠浩2017年6月13日 上午10:04

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n + 1,1);
    cout<<isPrime.max_size()<<endl;
    //memset(isPrime, 1, n + 1);
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  5. #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool>& isPrime, int n, vector<int> prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime(n + 1,1);
    cout<<isPrime.max_size()<<endl;

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  6. #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool> & isPrime, int n, vector<int> prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime(n + 1,1);
    cout<<isPrime.max_size()<<endl;


    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  7. #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector &prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n+1,1);


    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  8. B10333055 翁恩義2017年6月13日 上午10:07

    #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <vector>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool>& isPrime, int n, vector<int> prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime(n+1, 1);
    cout<<isPrime.max_size()<<endl;

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  9. B10333079 葉禮魁2017年6月13日 上午10:08

    #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    using namespace std;

    void Eratosthenes_sieve(vector<bool> & isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool> & isPrime, int n, vector<int> prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime(n + 1,1);
    cout<<isPrime.max_size()<<endl;
    // memset(isPrime, 1, n + 1);
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  10. B10333053 梁竣翔2017年6月13日 上午10:31

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector& prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  11. b10233032 謝翔宇2017年6月13日 上午10:38

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n+1, 1);
    cout<<isPrime.max_size()<<endl;

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  12. B10333072 黃玟茜2017年6月13日 上午10:42

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n + 1,1);
    cout<

    回覆刪除
  13. b10133187 楊鈞文2017年6月13日 上午10:44

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include //
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)//
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector& prime)//
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count++;
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");

    回覆刪除
  14. b10133187 楊鈞文2017年6月13日 上午10:45

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include //
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)//
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector& prime)//
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count++;
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");

    回覆刪除
  15. B10333072 黃玟茜2017年6月13日 上午10:45

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n + 1,1);
    cout<

    回覆刪除
  16. b10133187 楊鈞文2017年6月13日 上午10:47

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include //
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)//
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector& prime)//
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count++;
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");

    回覆刪除
  17. b10233032 謝翔宇2017年6月13日 上午10:49

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include //
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)//
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector& prime)//
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count++;
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime( n+1,1);

    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");

    回覆刪除
  18. B10333027 毛冠霖2017年6月13日 上午11:07

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime (n+1, 1) ;
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  19. #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    #include<vector>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool>& isPrime, int n, vector<int> &prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count ++;
    // prime[count++]=i;
    // ff << i << endl; //
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;

    vector<bool> isPrime( n+1,1);
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  20. #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime (n+1, 1) ;
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  21. #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime (n+1, 1) ;
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  22. #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime (n+1, 1) ;
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  23. #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime (n+1, 1) ;
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  24. #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <cstring>
    #include <ctime>
    using namespace std;

    void Eratosthenes_sieve(vector<bool>& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector<bool> isPrime, int n, vector<int> prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    count++;
    // prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e8;
    cout << n << endl;
    vector<int> prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector<bool> isPrime( n+1,1);
    cout<<isPrime.max_size()<<endl;
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  25. B10333005 陳於農2017年6月13日 上午11:41

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n + 1,1);
    cout<<isPrime.max_size()<<endl;
    //memset(isPrime, 1, n + 1);
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除
  26. B10333070 徐承瑋2017年6月13日 下午4:08

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;

    void Eratosthenes_sieve(vector& isPrime, int n)
    {
    isPrime[1] = 0;
    int n_sqrt = (int)(sqrt(n));
    for (int i = 2; i <= n_sqrt; i++)
    {
    if (isPrime[i])
    for (int j = i*i; j <= n; j += i)
    isPrime[j] = 0;
    }
    }

    void listPrime(vector& isPrime, int n, vector prime)
    {
    fstream ff("prime.csv", ios::out);
    int count = 0;
    for (int i = 1; i <= n; i++)
    if (isPrime[i])
    {
    prime[count++]=i;
    // ff << i << endl;
    }
    ff << "Prime_Pi=# of primes=" << count << endl;
    cout<< "Prime_Pi=# of primes=" << count << endl;
    }

    int main()
    {
    cout << "Find the primes below the integer n:";
    int n = (int)1e9;
    cout << n << endl;
    vector prime((int)(1.125*n / log(n)+1.5));//Use Chebyshev's prime theorem
    int s = clock(), e;
    vector isPrime(n + 1,1);
    cout<<isPrime.max_size()<<endl;
    //memset(isPrime, 1, n + 1);
    Eratosthenes_sieve(isPrime, n);
    e = clock() - s;
    cout <<(double) e /CLOCKS_PER_SEC<< " sec\n";
    listPrime(isPrime, n, prime);
    system("Pause");
    return 0;
    }

    回覆刪除

HTML 編輯器