- #1
peterjaybee
- 62
- 0
Hi,
I'm new to programming and have written the following code to test for prime-ness, but it doesn't seem to work except for n = 3.
I think it may have something to do with my goto statement. Can anyone see a way of avoiding this or any other errors with the program?
Kind regards,
Peter
I'm new to programming and have written the following code to test for prime-ness, but it doesn't seem to work except for n = 3.
I think it may have something to do with my goto statement. Can anyone see a way of avoiding this or any other errors with the program?
Code:
#include <iostream>
#include<math.h>
using namespace std;
int main() {
int n, i, is_prime;
//Assume # is prime until proven otherwise
is_prime = true;
loop:
// get number
cout << "Enter a number and press ENTER (0 to exit): ";
cin >> n;
if (n == 0) {
return 0;
}
else {
//test for prime-ness.
i=2;
while (i <= sqrt(static_cast<double>(n))) {
if (n%i == 0)
cout << i << " is a factor of " << n << endl;
is_prime = false;
i++;
}
if (is_prime)
cout << "Number is Prime!" << endl;
else
cout << "Number is not prime!" << endl;
}
goto loop;
}
Kind regards,
Peter