stampa gli n numeri primi

« Older   Newer »
  Share  
tonno16
view post Posted on 23/10/2012, 09:39




salve a tutti. Spero di iniziare bene la mia avventura in questo linguaggio. Siamo arrivati ai cicli e li capisco abbastanza in quanto fatti alle superiori in Jscript.

Ebbene il compito è: scrivere un programma che stampi a video i primi n numeri primi con n inserito da tastiera:

Il mio ragionamento-->
--> partiamo con un ciclo for dove n=1. per ogni i ci sarò un altro ciclo all interno con un indice n. quindi per i=2 calcolo:
resto=i%­n ossia il resto della divisione. Un numero primo per essere primo ha come divisori solo 1 e se stesso. per cui per ogni numero ho messo una condizione if(resto==0) verifica++. con un altro if per ogni i del primo for verifico se è <=2 poichè ci sono solo due numeri che devono dare resto 0. ebbene se è cosi cont++ quindi quando un numero i è primo cont si somma di uno.

ecco il sorgente:

#include <stdio.h>
#include <stdlib.h>

int main(){

int cont=0;
int numero,numerofinale;
int resto,i,n;
// deve essere = 12
int verifica;



printf("PROGRAMMA CHE STAMPA A VIDEO I PRIMI N NUMERI PRIMI \n\n");
printf("inserire un numero");
scanf("%d", &numero);
printf("saranno visualizzati i primo %d numeri primi \n\n", numero);

numerofinale=numero;

int primi[numero];

for(i=1;cont<numero;i++){ //con i sono i numeri trovati. ossia se i=12 ho trovato i primi 12 numeri

verifica=0;
for(n=1;n<=i;n++){

resto=i%­n;


if(resto==0){ verifica++; }



if(verifica==2){
primi[numero]=i;

cont++;}
}

}// kiusura for



for(numero=0;numero<cont;numero++){
printf(" %d \n", primi[numero]);
}

system("pause");
return(0);
}



eppure in output ho dei numeri casuali.

qualcuno che mi da una mano????'
 
Top
0 replies since 23/10/2012, 09:39   186 views
  Share