// Robert A.Simpson

// cs 132

// Oct. 12,1997

// unit 4

// This program will be our first one to use functions.

// This program will ask for to integers and give you

// all the prime and perfect numbers inbetween.

#include <iostream.h>

#include <iomanip.h>

int getnumber(int,int);

void numbvalue(int &,int &);

int divisor(int,int);

int prime(int);

void printprime(int,int);

int perfect(int);

void printperfect(int,int);

int repeat(int);

// start function main

main()

{

do{

int numb1=2,numb2=10000; // initialize starting variables

cout<<endl;

numbvalue (numb1,numb2);

printprime(numb1,numb2);

printperfect(numb1,numb2);

}while (repeat(1)==1);

return(0);

}

 

// begin function getnumber

getnumber (int numb1,int numb2){

int number;

do{

cout <<"PLEASE INTER A NUMBER BETWEEN "<<numb1 <<" AND "<<numb2<< " ?";

cin>>number;

}while (number<numb1 || number>numb2);

return number;

}

 

// begin function numbvalue

void numbvalue (int & numb1,int & numb2){

numb1=getnumber(numb1,numb2);

numb2=getnumber(numb1,numb2);

}

 

// begin function divisor

divisor (int numb1,int numb2){

return (numb1%numb2);

}

 

// begin function prime

prime (int numb1){

for (int count=2;count<numb1;count++){

if (divisor(numb1,count)==0)

return(0);

}

return(1);

}

 

//begin function printprime

void printprime(int numb1,int numb2){

int count=0;

for (;numb1<=numb2;numb1++){

if (prime(numb1)==0)

continue;

cout <<setw(10)<< numb1;

count++;

if (count%5==0)

cout<<endl;

}

cout <<endl<<endl;

cout <<"There are "<<count<<" prime numbers."<<endl<<endl;

}

 

// Begin function perfect

perfect(int numb1){

int count=0;

for (int count1=1;count1<numb1;count1++){

if (numb1%count1==0)

count=count+count1;

}

return(numb1==count);

}

 

// begin function printperfect

void printperfect(int numb1,int numb2){

int count=0;

for (;numb1<numb2;numb1++){

if (perfect(numb1)==0)

continue;

cout <<setw(10)<< numb1;

count++;

if (count%5==0)

cout<< endl;

}

cout<<endl<<endl;

cout<<"There are "<<count<<" perfect numbers."<<endl;

cout<<endl<<endl;

}

 

// begin function repeat

repeat(int res){

char response;

for (int x=1;x<100;x++){ // 'x' is used for counting only

cout <<"Do you wish to run this program again? "<<endl;

cout<< "Please enter 'y' for yes and 'n' for no. " ;

cin>>response;

if (response=='Y' || response=='y') // These 'if' statements will return

return(1); // a falue of 1 if yes and 2 if no.

if (response=='N' || response=='n')

return (0);

cout<<"That was and invalid response. "<<endl;

}}

back

Home Page