I need to write a program that asks a user to input a positive integer. I then need to out put whether the number is prime. I also need to put in an error message if the user inputs a negative number.

## 25 Replies - 31657 Views - Last Post: 11 January 2010 - 06:25 AM

##
**Replies To:** Prime number

### #2

## Re: Prime number

Posted 09 November 2005 - 01:21 AM

Could you please post what you have attempted so far, and we will be more than happy to guide you in the right direction.

### #3

## Re: Prime number

Posted 09 November 2005 - 05:51 AM

This is what I have.

#include <iostream>

using namespace std;

int isprime(int Prime_Number);

int main()

{

int Number = 0;

int isprime(int Prime_Number)

{

for(int Temp = 2;Temp < Prime_Number;Temp ++)

if(!(Prime_Number % Temp))

return(0); return(1);

}

}

#include <iostream>

using namespace std;

int isprime(int Prime_Number);

int main()

{

int Number = 0;

int isprime(int Prime_Number)

{

for(int Temp = 2;Temp < Prime_Number;Temp ++)

if(!(Prime_Number % Temp))

return(0); return(1);

}

}

### #4

## Re: Prime number

Posted 09 November 2005 - 07:04 AM

Well, you are declaring the function inisde the main function...that is a no no, I'm afraid...you should declare like so:

As for finding a prime number, simply start at 1, loop to the number itslef and use the modulus...if the result of that operation (userNumber%loop number) equals 0, and the loop number is something other than 1 or the user number, the number is not prime.

#include <iostream> using namespace std; int isprime(int Prime_Number); int main() { int Number = 0; cout<<"Enter a number"<<endl; cin>>Number; if(Number>0) { if(isprime(Number)==0) { cout<<"Number is prime"<<endl; } else { cout<<"Number is not prime"<<endl; } } else { cout<<"Positive numbers only"<<endl; } return 0; } int isprime(int Prime_Number) { //prime number calculation here }

As for finding a prime number, simply start at 1, loop to the number itslef and use the modulus...if the result of that operation (userNumber%loop number) equals 0, and the loop number is something other than 1 or the user number, the number is not prime.

### #5

## Re: Prime number

Posted 15 November 2005 - 01:43 PM

just an idea, limited

have a do while trying to mod divide the input int by 2 and up (++) until you hit the input value and if anything else returns 0 than the number is not prime. about the error if neg just check if the input value is < 0.

have a do while trying to mod divide the input int by 2 and up (++) until you hit the input value and if anything else returns 0 than the number is not prime. about the error if neg just check if the input value is < 0.

### #6

## Re: Prime number

Posted 16 November 2005 - 01:19 PM

so i also needed to do this for a class and this is my code, seems to work just fine.

Quote

/*

input positive integer and determine if it is prime

*/

#include <iostream.h>

void main()

{

long xaero;

int loop=42;

do

{

long x=2;

int p=0;

cout << "\n\nPlease enter a positive non zero number (-13 to quit)\n";

cin >> xaero;

if (xaero == -13)

{

loop=13;

}

else

{

if (xaero < 1)

{

cout << "I said a POSITIVE NON ZERO";

p=13;

}

else

{

for (x;x<=xaero;x++)

{

if ((xaero%x)==0 && (xaero != x))

{

x=xaero;

cout << xaero << " is not a prime number";

p=1;

}

}

}

if (p==0)

{

cout << xaero << " is a prime number";

}

}

}while (loop != 13);

}

input positive integer and determine if it is prime

*/

#include <iostream.h>

void main()

{

long xaero;

int loop=42;

do

{

long x=2;

int p=0;

cout << "\n\nPlease enter a positive non zero number (-13 to quit)\n";

cin >> xaero;

if (xaero == -13)

{

loop=13;

}

else

{

if (xaero < 1)

{

cout << "I said a POSITIVE NON ZERO";

p=13;

}

else

{

for (x;x<=xaero;x++)

{

if ((xaero%x)==0 && (xaero != x))

{

x=xaero;

cout << xaero << " is not a prime number";

p=1;

}

}

}

if (p==0)

{

cout << xaero << " is a prime number";

}

}

}while (loop != 13);

}

### #7

## Re: Prime number

Posted 19 November 2005 - 12:28 AM

Hey man,

I know I'm going to get thrashed for this... but it happens. Here is my code written in

Also, I forgot about your non-negative number input, once again here is my code in

I know I'm going to get thrashed for this... but it happens. Here is my code written in

**JAVA**for the same exact problem. I have it done in JAVA and the theory is the same, all you have to do is change the syntax. So here it is:for (int i = 2; i <= (Math.sqrt(primeInput)); i++) { if ((primeInput % i) == 0) { isPrime = false; break; } } if (isPrime) JOptionPane.showMessageDialog(null, "The number you entered " + primeInput + " is PRIME!!", "We have found a prime!", JOptionPane.INFORMATION_MESSAGE); else JOptionPane.showMessageDialog(null, "The number you entered " + primeInput + " is NOT PRIME!!", "We have FAILED!", JOptionPane.ERROR_MESSAGE);

Also, I forgot about your non-negative number input, once again here is my code in

**JAVA**.while (primeInput < 0) { JOptionPane.showMessageDialog(null,"That was not a positive integer!", "That was not a positive integer!", JOptionPane.ERROR_MESSAGE); inputStr = JOptionPane.showInputDialog("Please input a positive integer: "); primeInput = Integer.parseInt(inputStr); }

This post has been edited by **mikepetro**: 19 November 2005 - 12:32 AM

### #8

## Re: Prime number

Posted 14 September 2008 - 09:40 PM

### #9

## Re: Prime number

Posted 15 September 2008 - 03:37 AM

You only have to divide by a number upto the square root of the number, as after this you are just doing the sums the opposite way around

### #10

## Re: Prime number

Posted 15 September 2008 - 08:20 PM

also a hint for performance improvement, with the exception of 2 & 3, all primes are of the form (6n)+1 or (6n)-1, where n is a positive integer.* using this as a first test can greatly reduce the run time of your isprime(int) function, and only costs two statements:

* if you submit a proof of this with your assignment, your professor may give you extra points, or not, but still cool

int isprime(int input) { if(input % 6 != 1 || input % 6 != 5) { return(0); } }

* if you submit a proof of this with your assignment, your professor may give you extra points, or not, but still cool

### #11

## Re: Prime number

Posted 05 June 2009 - 02:28 AM

Hey Dude, how about this? It's not 'that' lengthy and I find it working perfectly well. Just apply rudimental arithmatics (the use of modulus for example) and you will easily finish it. Hope it helps:

Mod edit: added code tags:

#include <stdio.h> #include <stdlib.h> #define PRIME 1 #define NOT_PRIME 0 int main(int argc, char *argv[]) { int num,flag,i,count=0; printf("Enter number : "); scanf("%d",&num); flag=PRIME; for(i=2;i<num;i++) { if(num%i==0) flag=NOT_PRIME; } if(flag==PRIME) printf("\n%d is PRIME\n",num); else printf("\n%d is NOT PRIME\n",num); system("PAUSE"); return 0; }

Mod edit: added code tags:

### #12

## Re: Prime number

Posted 05 June 2009 - 02:37 AM

You guys are silly. Find a chart of prime numbers. Write an if for each number. If it matches one of them, say yay and if matching none, say nay. And if they input a number higher than all the ones you wrote, ask them to try again. Trust me. It's the truth.

### #13

## Re: Prime number

Posted 05 June 2009 - 03:03 AM

Try following posting rule 7

Search for your problem before posting a new topic

and you will save yourself a lot of time and heartache (and having to read useless suggestions like the one from

Have a look at the top result from using the little search box up there in the top right.

http://www.dreaminco...snippet2196.htm

Useful isn't it!

Search for your problem before posting a new topic

and you will save yourself a lot of time and heartache (and having to read useless suggestions like the one from

**Kanvus**)Have a look at the top result from using the little search box up there in the top right.

http://www.dreaminco...snippet2196.htm

Useful isn't it!

### #14

## Re: Prime number

Posted 05 June 2009 - 03:12 AM

^u get a trophy for being most serious 2009