Controlla un attimo. Ci sono un casino di cose da migliorare ma almeno il programma gira. Non mettere variabili globali inutilmente.
#include <iostream>
#include <cstdlib>
using namespace std;
int rip, scelta, Numero, Num_da_controllare;
bool primo(int numero);
bool verifica_Primo (int Num_da_controllare);
int main() {
cout<<"Programma, sui numeri primi, che ha tre opzioni di scelta. Premere: "<<endl;
cout<<" 1 - Programma che controlla se un numero e' primo o no;"<<endl;
cout<<" 2 - Programma che visualizza i numeri primi fino al numero inserito dall' utente;"<<endl;
cout<<" 3 - Programma che visualizza i primi N numeri primi (N viene inserito dall' utente;"<<endl;
cin>>scelta;
if (scelta==1)
{
int Num=0;
cout << "Verifica se un numero e' primo oppure no.";
cout << "\nInserisci il numero su cui vuoi effettuare la verifica: ";
cin >> Num;
if (Num<=1)
{
cout<<"\nIl numero non e' primo.\n\n"<<endl;
}
else
{
if(primo(Num))
cout << "il numero è primo";
else
cout << "il numero non è primo";
}
}
else if (scelta==2)
{
int N, i = 3;
cout << "Qual e' il numero limite?\n";
cin >> N;
cout << "\nI numeri primi minori di " << N << " sono:\n2\n";
while (i <= N)
{
if (verifica_Primo(i))
cout << i << endl;
i+=2;
};
system ("pause");
return 0;
}
else if (scelta==3)
{
int N, riemp = 1, i = 3;
cout <<"Programma che trova i primi N numeri primi e li visualizza."<<endl;
cout <<"Inserisci Quanti numeri primi vuoi trovare?\n";
cin >> N;
cout << "\nI primi " << N << " numeri primi sono:\n2\n";
do
{
if (verifica_Primo(i))
{
cout << i << endl;
riemp++;
}
i+=2;
} while (riemp < N);
system ("pause");
return 0;
}
}
bool verifica_Primo (int Num_da_controllare)
{
for (int k = 3; k < Num_da_controllare; k++)
if (Num_da_controllare%k == 0)
return false;
return true;
}
bool primo(int Numero)
{
int Resto=0;
bool numeroPrimo = true;
for(int i=2; i<(Numero-1);i++) {
Resto = Numero % i;
if(Resto==0) { numeroPrimo = false; break; }
}
return numeroPrimo;
}