Problema esercizio in c

di il
2 risposte

Problema esercizio in c

Ho un problema con questo esercizio del progetto eulero(una serie di quiz matematici da risolvere con la programmazione).forse dipende dal tipo di dato usato perchè non stampa niente con numeri piccoli l'esercizio risulta esatto.

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10 001st prime number?
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
int k=0;
int n=0;
int j;
int flag;
int vara=0;
for(i=2; ;i++){
n=i;
flag=0;
for(j=2;j<n ;j++){

if(n%j==0 && j!=n){
flag=1;
}
}
if(flag!=1){
vara=n;
k++;
}
if(k==10001){

printf("%d\n",vara);
break;
}
}
return 0;
}

2 Risposte

  • Re: Problema esercizio in c

    Prima cosa: usa i tag appositi per postare il codice.
    Secondo: impara ad identare il codice: ti aiuta a capire molto.
    Terzo: il controllo j!=n non ha senso in quanto il for va da 2 a n-1.

    Detto questo l'algoritmo per quello che vedo dovrebbe dare la risposta corretta, anche se ci metterà un po' dovrebbe darti, come risposta 104743, come puoi vedere QUI

    Ulteriore nota sul codice: quando hai un ciclo e lo devi interromprere con un break, molto probabilmente hai sbagliato a scegliere il tipo di loop da utilizzare. Il for più esterno potrebbe tranquillamente essere sostituito con un
    
    while (k<10001)
    
  • Re: Problema esercizio in c

    Su codeblocks non stampa niente
Devi accedere o registrarti per scrivere nel forum
2 risposte