Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- bool getData(int value) {
- bool error = false;
- do {
- if ((value > 2147483647) || (value < -2147483647)) {
- error = true;
- cout << "Invalid file data. Value from " << -2147483647 << " to " << 2147483647 << " expected";
- }
- } while(error);
- return error;
- }
- void putData(bool primeNumbers [10], int n) {
- ofstream fout("D:\\output.txt");
- int i = 0;
- fout << "\n" << "\n";
- cout << "2" << " ";
- while ( i < n ) {
- if (primeNumbers[i]) {
- cout << i + 1 << " ";
- fout << i + 1 << " ";
- }
- fout << " ";
- i = i + 2;
- }
- }
- void initarray( bool primeNumbers [10], int n) {
- for (int i = 0; i < n; i++) {
- primeNumbers[i] = true;
- }
- }
- void removeDivisibleNumbers(bool primeNumbers [10], int divisor, int n) {
- int i;
- i = divisor * 2 - 1;
- while ( i < n) {
- primeNumbers[i] = false;
- i = i + divisor;
- }
- }
- bool *getPrimeNumbers(int n) {
- bool *primeNumbers = new bool [10];
- initarray(primeNumbers,n);
- primeNumbers[0] = false;
- int i = 3;
- while (i < (n / 2 + 1)) {
- if (primeNumbers[i - 1]) {
- removeDivisibleNumbers(primeNumbers,i,n);
- }
- i = i + 2;
- }
- return primeNumbers;
- }
- void body() {
- ifstream fin("D:\\input.txt");
- ofstream fout("D:\\output.txt");
- int n = 0;
- fin >> n;
- bool *primeNumbers = new bool [10];
- bool error = getData(n);
- if (!error) {
- primeNumbers = getPrimeNumbers(n);
- cout << "Prime numbers up to " << n << "\n";
- fout << "Prime numbers up to " << n << "\n";
- putData(primeNumbers,n);
- }
- else {
- cout << "File input.txt does not exist";
- fout << "File input.txt does not exist";
- }
- }
- int main() {
- body();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement