Advertisement
cmiN

prim

Mar 6th, 2011
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <fstream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5. unsigned long long numbers[100001];
  6.  
  7. void generate(unsigned long n)
  8. {
  9.     unsigned long long i, last, old, sqoi;
  10.     unsigned long j, len = 0;
  11.     bool flag;
  12.     numbers[len++] = 2;
  13.     while (true) {
  14.         i = numbers[len - 1];
  15.         last = (unsigned long long) pow((long double) i, 2);
  16.         old = len;
  17.         for (i++; i < last; i++) {
  18.             if (len == n) {
  19.                 return;
  20.             }
  21.             sqoi = sqrt(i);
  22.             for (j = 0, flag = true; flag && j < old && numbers[j] <= sqoi; j++) {
  23.                 if (!(i % numbers[j])) {
  24.                     flag = false;
  25.                 }
  26.             }
  27.             if (flag) {
  28.                 numbers[len++] = i;
  29.             }
  30.         }
  31.     }
  32. }
  33.  
  34. int main()
  35. {
  36.     unsigned long n;
  37.     unsigned long long res;
  38.     ifstream fin("prim.in");
  39.     ofstream fout("prim.out");
  40.     fin >> n;
  41.     generate(n + 1);
  42.     res = (unsigned long long) pow((long double) numbers[n], 2);
  43.     fout << res;
  44.     fin.close();
  45.     fout.close();
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement