Oppure

Loading
09/11/11 19:53
GiuZeppelin
Salve ragazzi,
mi sono imbattuto in un esercizio che, essendo io neofita del C/C++, mi ha dato qualche problemuccio. in pratica: Il compito che questo problema propone è scrivere un programma che riceve un intero n > 1 e stabilisce quanti numeri primi p sono compresi nell'intervallo n < p < 2n.

ho provato questo codice ma il programma (che con Dev-C++ non da problemi nel codice) sembra bloccarsi misteriosamente dopo l'immissione del numero da parte dell'utente. di seguito il codice:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int N,cont;
  double Resto;
      printf("Inserisci un numero N: ");
      scanf("%d", &N);
      do{
                  
      Resto = N % 2;
      if(Resto != 0) (cont = cont + 1);
      }
      while(N <= (N * 2));
      printf("I numeri primi compresi fra N e 2N sono: %d", cont);
  system("PAUSE");	
  return 0;
}


Avevo provato lo stesso codice ma col ciclo "FOR" ma il risultato è lo stesso. Consigli?
aaa
09/11/11 21:58
lorenzo
inizializza cont a zero "prima" di chiedere il numero in ingresso.
Altrimenti, cont = cont + 1 darà un risultato inatteso perché cont non ha un valore iniziale stabilito.

ps: togli le parentesi da cont = cont +1, non ci capisce nulla e non ci vogliono.
Ultima modifica effettuata da lorenzo 09/11/11 21:59
aaa
10/11/11 12:49
Poggi Marco
Ciao!

Per risolvere l' esercizio, devi impostare due cicli in questo modo.
Il primo ciclo scorre tutti i numeri da n a 2*n. Il secondo, è interno al primo, e stabilisce se il numero in esame è primo oppure no.
aaa