Buonasera a tutti, devo controllare se un numero dato in input è primo. Non riesco proprio a capire perché non esca dal ciclo do....while.
Il codice è il seguente:
int numero;
float resto=0;
int divisore=2;
bool out=true;
cout<<"Inserisci il numero da controllare \n";
cin>>numero;
do{
resto=numero%divisore;
cout<<numero<<" % "<<divisore<<" = "<<resto<<endl;
if(resto==0){
out=false;
}
divisore++;
}while(out==true || divisore<numero);
if(out==true){
cout<<"Il numero e' primo";
}
if(out==false){
cout<<"Il numero non e' primo";
}
Come sappiamo un numero primo è quel numero divisibile solo per 1 o se stesso.
In teoria appena il resto sarà 0 oppure il divisore sarà numero-1 dovrebbe uscire dal ciclo. La mia domanda è perché non esce dal ciclo?