Buonasera a tutti!
Scusate per l'ora ma ho un esercizio da risolvere e siccome sono malato mi ci sono messo ora![]()
L'esercizio chiede questo: Definire una funzione che, dato un intero n, conta quanti sono i numeri primi minori o uguali a n, servendosi di un' ulteriore funzione che controlli la primalità del numero.
Io nella mia stolta ignoranza ho implementato questa soluzione(riveltasi errata) che però mi restituisce che nell'array ci sono N numeri primiSapreste dirmi dove è che sbaglio per piacere??
Grazie in anticipo.
Posto il codice per chiarezza:
(Scusate ma sono sempre quello che non conosce i puntatori quindi per piacere se potete solo aiuti che non li prevedano nel codice grazie millecodice://Funzioni che determinano la presenza di numeri primi un array. Se ci sono valuta quelli minori di n(dimensione) #include <iostream> using namespace std; char if_primo (int a[], int n){ int k = 2; for (int i = 0; i < n; i++,k++){ if (a[i] % k == 0) return 'n'; // Se trova divisori il numero non è primo e restituisce n(no) } return 'y'; // Se non li trova il numero è primo e restituisce y(yes) } int conta_primi (int a[], int n){ int conta = 0; for (int i = 0; i < n; i++){ if (if_primo(a,n) == 'y' && a[i] < n) conta++; } return conta; } int main () { cout << "Inserisci dimensione array: "; int n; cin >> n; int a[n]; cout << "Ora inserisci gli elementi dell'array" << endl; for (int i = 0; i < n; i++){ cin >> a[i]; } char esiste = if_primo(a,n); cout << "Ci sono primi nella sequenza che hai inserito?? " << esiste << endl; if (esiste == 'y'){ cout << "Ci sono esattamente: " << conta_primi(a,n) << " primi nell'array" << endl; } else if (esiste == 'n'){ cout << "Primi nell'array: " << conta_primi(a,n) << endl; } system("PAUSE"); return 0; })

Sapreste dirmi dove è che sbaglio per piacere??
)
Rispondi quotando