[C] numeri primi
Salve a tutti. Sto studiando le funzioni non ricorsive in C, ma mi sono bloccato con questo esercizio:
Si scriva un programma C che definisce una funzione:
Si utilizzi inoltre la seguente funzione main() per testarne il
funzionamento:
Non ho la più pallida idea di come procedere
Si scriva un programma C che definisce una funzione:
int next_prime(int last);che restituisce il numero primo immediatamente successivo a last.
Si utilizzi inoltre la seguente funzione main() per testarne il
funzionamento:
int main(void) {
int number;
int c;
int p = 2;
printf ("Quanti numeri primi vuoi stampare? ");
scanf ("%d”, &number);
for (c = 0; c < number; c++) {
printf("%d\n", p );
p = next_prime( p );
}
}Non ho la più pallida idea di come procedere
Risposte
Dove incontri difficoltà? Nella creazione della funzione o nel capire come trovare il successivo numero primo?
Nel trovare il successivo numero primo
Ci sono diversi metodi, ma essendo un problema legato all'uso di funzioni e non di algoritmi, direi che ogni metodo può andare bene. Il più semplice consiste nel considerare un numero per volta maggiore del numero dato e verificare se si tratta di un numero primo verificando che non ha divisori.
Purtroppo non riesco a venirne a capo, sono bloccato. Non mi piace chiedere le cose fatte ma in questo caso proprio non riesco a fare nulla