Connecting Tech Pros Worldwide Help | Site Map

Prime No. generator

 
LinkBack Thread Tools Search this Thread
  #1  
Old April 21st, 2007, 06:15 PM
ume$h
Guest
 
Posts: n/a
Default Prime No. generator

Why does this program fail to run?

//FIRST n PRIMES
#include <iostream.h>
#include <math.h>

int main(void)
{
long int i,j=3,count=1;
int n,flag=0;
cout<<"How many primes?";
cin>>n;
cout<<"2, ";
while(count<n)
{
for(i=1;i<(sqrt(j)+1);++i){
if(j%i==0) {flag=1;break;}
if(j>3 && flag==0) {cout<<j<<", ";++count;}}
++j;
}
return 0;
}


  #2  
Old April 21st, 2007, 06:45 PM
Heinz Ozwirk
Guest
 
Posts: n/a
Default Re: Prime No. generator

"ume$h" <fraternitydisposal@gmail.comschrieb im Newsbeitrag
news:1177178809.327685.144790@b75g2000hsg.googlegr oups.com...
Quote:
Why does this program fail to run?
>
//FIRST n PRIMES
#include <iostream.h>
#include <math.h>
>
int main(void)
{
long int i,j=3,count=1;
int n,flag=0;
cout<<"How many primes?";
cin>>n;
cout<<"2, ";
while(count<n)
{
for(i=1;i<(sqrt(j)+1);++i){
if(j%i==0) {flag=1;break;}
if(j>3 && flag==0) {cout<<j<<", ";++count;}}
++j;
}
return 0;
}
1) How is a prime defined? Especially, what does the definition say about
dividing a prime by 1?
2) Is 3 a prime?
3) Are there any even primes except 2.
4) What happens to 'flag' once your program found a prime?
5) How often does your program compute sqrt(j) for each j?

Perhaps your answers to these questions will help you solving your problem.

HTH
Heinz


  #3  
Old April 21st, 2007, 06:55 PM
osmium
Guest
 
Posts: n/a
Default Re: Prime No. generator

"ume$h" writes:
Quote:
Why does this program fail to run?
>
//FIRST n PRIMES
#include <iostream.h>
#include <math.h>
>
int main(void)
{
long int i,j=3,count=1;
int n,flag=0;
cout<<"How many primes?";
cin>>n;
cout<<"2, ";
while(count<n)
{
for(i=1;i<(sqrt(j)+1);++i){
if(j%i==0) {flag=1;break;}
Where is the code that sets flag equal to 1?
Can you get out of the loop without setting the flag?

You seem to be using Windows so here's a tip:

Activate the task mgr. Then activate your program. If the green icon in
the task bar turns bright green, you program is in a tight loop. (As here.)
Quote:
if(j>3 && flag==0) {cout<<j<<", ";++count;}}
++j;
}
return 0;
}
>

  #4  
Old April 21st, 2007, 07:25 PM
ume$h
Guest
 
Posts: n/a
Default Re: Prime No. generator

//This one runs(Ultimately by self attempt!)

#include <iostream.h>
#include <math.h>
int main(void)
{
long int i,j=3,count=1;
int n;
cout<<"\nHow many first primes do you want to generate? ";
cin>>n;
if(n<0) {cout<<"Wrong No.\n Enter No. Again"; cin>>n;}
if(n==1 || n>1)cout<<"2, ";
if(n>1) while(count<n)
{

int flag=0;
for(i=2;i<sqrt(j)+1;++i)

if(j%i==0)
{
flag=1;break;
}

if(flag==0)
{
++count;cout<<j<<", ";
}
++j;

}

return 0;
}

  #5  
Old April 21st, 2007, 10:15 PM
red floyd
Guest
 
Posts: n/a
Default Re: Prime No. generator

ume$h wrote:
Quote:
Why does this program fail to run?
Define "fail to run". Does it not compile? Does it give erroneous output?
See FAQ 5.8 http://www.parashift.com/c++-faq-lit...t.html#faq-5.8

Quote:
//FIRST n PRIMES
#include <iostream.h>
Non-standard header. #include <iostreamisntead
Quote:
#include <math.h>
using namespace std; // to get cin and cout.
Quote:
>
int main(void)
void in this context is superfluous and discouraged in C++.
Quote:
{
long int i,j=3,count=1;
int n,flag=0;
poor practice. Better practice is one declaration per line.
Define i inside the for loop. e.g. for (int i = 1; ...)
Quote:
cout<<"How many primes?";
cin>>n;
cout<<"2, ";
while(count<n)
{
for(i=1;i<(sqrt(j)+1);++i){
Hint: if you only check odd numbers for primality (see below), you can
increment i by 2 instead of 1.
Quote:
if(j%i==0) {flag=1;break;}
Your problem lies here. Hint. What is the initial value of i?
What is the value of j%i, for any j, given that initial value of i?

Also, formatting -- put the body of the if on a separate line.
Quote:
if(j>3 && flag==0) {cout<<j<<", ";++count;}}
Ditto here.
Quote:
++j;
Hint: 2 is the only even prime. You can bump j by 2.
Quote:
}
return 0;
}
>
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,840 network members.