tonno16 |
|
| 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????'
|
| |