Ciao, non riesco a concludere questo "semplice" (non per me ) codice.
// Ricerca di numeri primi in una serie
#include <iostream>
using namespace std;
int main ()
{ int N;
cout << "Inserisci N ed io ti diro' quali dei numeri compresi tra 1 ed N sono primi." << endl;
cin >> N;
int * a = new int [N];
for (int i = 0; i < N; i++)
{
a [i] = i + 1;
if (???)
cout << a [i] << " non e' primo. " << endl;
else
cout << a [i] << " e' primo. " << endl;
}
return 0;
}
Se io dovessi mettere N = 9, l'array sarebbe:
1 2 3 4 5 6 7 8 9
Dovrebbe stampare:
1 è primo,
2 è primo,
3 è primo,
4 non è primo,
5 è primo,
6 non è primo,
7 è primo,
8 non è primo,
9 non è primo.
Stavo pensando di far qualcosa del tipo:
ad eccezione di 1, tutti i numeri devono essere divisi per tutti i propri "numeri minori uguali" fino ad arrivare ad 1 e se il cont risulta maggiore di 2 (un numero è primo se divisibile per 1 per sé stesso), il numero non è primo... ma non funziona)
Per essere primo deve dare resto 0 solo alla divisione fra sé stesso e 1 ma non so come scriverlo nel parametro.
// Ricerca di numeri primi in una serie
#include <iostream>
using namespace std;
int main ()
{ int N;
int cont = 0;
cout << "Inserisci N ed io ti diro' quali dei numeri compresi tra 1 ed N sono primi." << endl;
cin >> N;
int * a = new int [N];
int * b = new int [N];
for (int i = 0; i < N; i++)
{
a [i] = i + 1;
for (int i = 1; i <= N; i++)
{
b [i] = i;
if (a [i] % b [i] != 0)
cont++;
}
if (cont == 2)
cout << a[i] << " e' primo" << endl;
}
return 0;
}