Finding a prime number

Feb 5, 2013 at 4:16pm
I am very new to C++ and trying to create a code that allows me to see if a number is prime or not. I think I may be on the right track, but, when compiled and ran, it tells me that all numbers but one are prime. Could anyone point out my logical error and perhaps suggestions to fix it?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;

int main () {

	int num;
	int divisor;


	cout << "Enter a number please: ";
	cin >> num;

	while (divisor = 1, divisor < num, divisor++){
		if (num / divisor == 0) {
			cout << num << " is not prime.  It is divisible by " << divisor << endl;}
		else {cout << "You have a prime number!" << endl;
		}

return 0;
}
}
Feb 5, 2013 at 4:25pm
Lines 14 and 15 almost make sense.
But you should use the modulo operator % instead of / (divide).
That determines the the number is not prime.

But line 16 (the else condition) is not correct.

For example, let's say you try to divide the number by 2. If there is no remainder, the number isn't prime. But if there is a remainder, does it mean it is prime? No, it simply means it is odd.
Feb 5, 2013 at 4:41pm
Okay. For line 16, is there a way to make the program loop, dividing each number by the divisor (which would work its way up from one)? That was my purpose for the while loop, to check and see if the number could be divided by anything other than 1 or the number itself without a remainder.
Feb 5, 2013 at 4:49pm
You are using a while loop when I think you mean to use a for loop.
Topic archived. No new replies allowed.