Reputation: 109
I am trying to call the function "isPrime" from main
, but as soon as I enter a number the program exits. I don't know what the problem is? If anyone can see where am I doing wrong, I will appreciate it. Thanks.
Code:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
ofstream myfile;
int num;
int main(){
cout << "Please Enter a number " << endl;
cin >> num;
while (num > 3001){
cout << "Your input integer should be less than 3001. Try again, or -1 to exit" << endl;
cin >> num;
if (num == -1){
break;
}
}
bool isPrime(num);
//cout << "CMSC 140 CRN <your course CRN> Project 5: Prime Numbers Written by a student <YourName> Due Date : DD / MM / YYYY>" <<endl;
}
bool isprime(int a){
myfile.open("primelist.txt");
a = num;
int prime;
if (a <= 1 || (a % 2 == 0)){ // check if the number is even
cout << " that is not a prime number" << endl;
return false;
}
else if (a == 2){
cout << "tht is a prime number" << endl;
return true;
}
else{
int divisor = 3;
int top = a - 1;
while (divisor <= top)
{
if (a % divisor == 0)
return false;
}
divisor += 2; //check the odd divisions
return true;
}
for (int i = 4; i < a; i++){
if (i % 2 != 0 || i % 3 != 0){
myfile << "2, 3, " << i << endl;
}
}
}
Upvotes: 0
Views: 95
Reputation: 131
I think you are miss something like this: 1. You replace
bool isPrime(num);
To
bool ret = isPrime(num);
Or
(void) isPrime(num);
Upvotes: 2
Reputation: 40897
bool isPrime(num);
Honestly, I don't think this should compile. The nearest match, syntactically, though would be a function declaration...which pragmatically does nothing.
So as was said in comments, omit the bool
in that statement.
Upvotes: 4