Advertisement
nikitaxe132

Untitled

Oct 29th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. bool getData(int value) {
  7.     bool error = false;
  8.     do {
  9.         if ((value > 2147483647) || (value < -2147483647)) {
  10.             error = true;
  11.             cout << "Invalid file data. Value from " << -2147483647 << " to " << 2147483647 << " expected";
  12.         }
  13.     } while(error);
  14.     return  error;
  15. }
  16.  
  17. void putData(bool primeNumbers [10], int n) {
  18.     ofstream fout("D:\\output.txt");
  19.     int i = 0;
  20.     fout << "\n" << "\n";
  21.     cout << "2" << " ";
  22.     while ( i < n ) {
  23.         if (primeNumbers[i]) {
  24.             cout << i + 1 << " ";
  25.             fout << i + 1 << " ";
  26.         }
  27.         fout << " ";
  28.         i = i + 2;
  29.     }
  30. }
  31.  
  32. void initarray( bool primeNumbers [10], int n) {
  33.     for (int i = 0; i < n; i++) {
  34.         primeNumbers[i] = true;
  35.     }
  36. }
  37.  
  38. void removeDivisibleNumbers(bool primeNumbers [10], int divisor, int n) {
  39.     int i;
  40.     i = divisor * 2 - 1;
  41.     while ( i < n) {
  42.         primeNumbers[i] = false;
  43.         i = i + divisor;
  44.     }
  45. }
  46.  
  47. bool *getPrimeNumbers(int n) {
  48.     bool *primeNumbers = new bool [10];
  49.     initarray(primeNumbers,n);
  50.     primeNumbers[0] = false;
  51.     int i = 3;
  52.     while (i < (n / 2 + 1)) {
  53.         if (primeNumbers[i - 1]) {
  54.             removeDivisibleNumbers(primeNumbers,i,n);
  55.         }
  56.         i = i + 2;
  57.     }
  58.     return primeNumbers;
  59. }
  60.  
  61. void body() {
  62.     ifstream fin("D:\\input.txt");
  63.     ofstream fout("D:\\output.txt");
  64.     int n = 0;
  65.     fin >> n;
  66.     bool *primeNumbers = new bool [10];
  67.     bool error = getData(n);
  68.     if (!error) {
  69.         primeNumbers = getPrimeNumbers(n);
  70.         cout << "Prime numbers up to " << n << "\n";
  71.         fout << "Prime numbers up to " << n << "\n";
  72.         putData(primeNumbers,n);
  73.     }
  74.     else {
  75.         cout << "File input.txt does not exist";
  76.         fout << "File input.txt does not exist";
  77.     }
  78. }
  79.  
  80. int main() {
  81.     body();
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement