Numeri primi c++

di il
1 risposte

Numeri primi c++

Ciao a tutti, ho scritto un programma per verificare se un numero è primo o meno, ma non funziona sempre (alcuni li azzecca, altri no). qualcuno può aiutarmi? lascio di seguito il codice.
#include<iostream>
using namespace std;
int main()
{
long int n,d;
double r;
cout<<"inserisci un numero e ti diro' se esso e' primo o meno"<<endl;
cin>>n;
d=2;
do
{
r=n%d;
if (r==0)
{
cout<<"il numero non e' primo, mi dispiace,"<<endl;
}
else
{
d=d++;
}
}while(((n--)==d));
if (r!=0.00)
{
cout<<"il numero e' primo"<<endl;
}

system ("pause");

}

1 Risposte

  • Re: Numeri primi c++

    Il codice, a parte qualcosa tipo
    d=d++;
    che puoi scrivere direttamente
    ++d;
    non ha errori. E' l'algoritmo che è sbagliato. In particolare il ciclo do-while viene eseguito una sola volta, perché la condizione di continuazione si verifica solo per alcuni casi particolari, per tutti gli altri esce al primo giro.
    E se hai fortuna, ti dice la risposta corretta (ovvero, solo per i numeri divisibili per 2 quando dice che non è primo).
Devi accedere o registrarti per scrivere nel forum
1 risposte