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 primi Sapreste dirmi dove è che sbaglio per piacere??
Grazie in anticipo.
Posto il codice per chiarezza:
codice:
//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;
        
    }
(Scusate ma sono sempre quello che non conosce i puntatori quindi per piacere se potete solo aiuti che non li prevedano nel codice grazie mille )