Mi dite cosa c'è di sbagliato?
#include <iostream>
#include <cmatch>
using namespace std;
int main()
{
cout <<Enter a number:\n";
int n;
cin >> n;
int c = 2;
int k = (int)sqrt(n);
int r = n % c;
while (c <= k)
{
if ( r == 0)
cout <<"n is not prime.\n";
else
c++;
}
return 0;
}
Allora il programma dovrebbe stampare se un numero è primo o meno.Adesso voglio vedere se stampa almeno i numeri NON primi. Ho provato a metterci 9 ma non mi stampa nulla, quando dovrebbe stampare che non è primo.
Vorrei che il ciclo si fermasse finchè non ha raggiunto il numero k e poi uscire e stampare "n is prime"
Mi spiego meglio: ad esempio, inserisco 17 la parte intera delle radice quadrata di 17 è uguale a 4. Quindi partendo da 2 , il resto della divisione tra 17 e 2 è diverso da zero, quindi aumento c che ora è uguale a 3. Il resto della divisione tra 17 e 3 è diverso da zero, quindi aumento c che ora è uguale a 4. Il resto della divisione tra 17 e 4 è diverso da zero. Ora che c(4) <= k(4) voglio che esca dal ciclo e scriva che il numero 17 non è primo.
Come faccio?
Grazie delle eventuali risposte.