Ho fatto cosi' modificando il code (aiutato anche un po' guardando online)
Non riesco solo a capire
return primo(n, d - 1);
nel senso come fa il programma a creare i valori dei divisori?
Non è che ho impostato di controllare ogni numero con cui devo provare a dividere n sino a d<n/2...
es poniamo che metto 100 come numero farà il calcolo sino a n/2
quindi 2, 4, 5, 10, 20, 25, 50 e ovviamente 100 non è primo ma come trova questi divisori per arrivare al risultato?
Non riesco solo a capire
return primo(n, d - 1);
nel senso come fa il programma a creare i valori dei divisori?
Non è che ho impostato di controllare ogni numero con cui devo provare a dividere n sino a d<n/2...
es poniamo che metto 100 come numero farà il calcolo sino a n/2
quindi 2, 4, 5, 10, 20, 25, 50 e ovviamente 100 non è primo ma come trova questi divisori per arrivare al risultato?
C++:
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
int primo(int n, int d)
{
if (n < 2) {
return 0;
}
if (d == 1) {
return 1;
} else {
if (n % d == 0) {
return 0;
} else
{
return primo(n, d - 1);
}
}
}
int main()
{
int n;
cin >> n;
cout << (primo(n, n / 2) ? "numero primo" : "non e' primo")<< "\n";
}
[CODE]
Ultima modifica: