Stampa primi N numeri primi.

di il
5 risposte

Stampa primi N numeri primi.

Ciao a tutti sono un nuovo iscritto e nuovo della programmazione...ho un problema. Volevo stampare a scherzo i primi N numeri primi, ad esempio i primi 10, in C++.

Il programma non capisco il perchè non funziona, ossia non da nessun errore nella compilazione ma il risultato è errato. Credo ci sia un errore logico.

Ve lo riscrivo qui:

#include <iostream>
using namespace std;
int main()
{
int x = 2;
int y;
                
               while ( x <= 10)
               {
                x = x / 2;
                if ( x % 2 == 0)
                x = x + 1;
                else ( x % 2 != 0)
                cout << x <<"\n";
                }
return 0:
}

Grazie delle eventuali risposte !

5 Risposte

  • Re: Stampa primi N numeri primi.

    Il codice così presentato non è compilabile vedi else (...) e i doppi punti su return,
    "dopo la messa a punto" va in ciclo infinito. Quindi devi riscrivere il programma.
  • Re: Stampa primi N numeri primi.

    Si lo vedo che va in ciclo infinito, lo cambio e vi faccio sapere se ci riesco. Grazie!
  • Re: Stampa primi N numeri primi.

    Come faccio per dirgli di stampare un numero e subito dopo di aumentarlo di 1 e ritornare all'inizio del ciclo.

    Perchè ho il problema che mi stampa sempre lo stesso numero e va in ciclo infinito.

    Vi mostro l'esercizio:
    
    while ( k <= 10)
    {
    if ( k % 2 == 0)
    {
    k++;
    }
    else
    cout << k <<"\n"; }  <-------- (Vorrei che qui lui, si mi stampasse k, ma anche che dopo averlo fatto,  il risultato (k) aumenti di 1 e torni all'inizio del ciclo, quando chiede se il resto è uguale a 0)
    Non riesco a fare questo...avete qualche idea?

    Grazie mille !
  • Re: Stampa primi N numeri primi.

    
    for(k=0; k<=10; k++){
        if ( k % 2 == 0)
            k++;
        else
            cout << k <<"\n"; 
    }
    
    Prova in questo modo.
  • Re: Stampa primi N numeri primi.

    Niente non restituisce nulla questo è il programma:
    
    int k = 2;
                 
                 for ( k =2; k <= 10; k++) {
                 if ( k % 2 == 0)
                 k++;
                 else
                 cout << k <<"\n"; 
                 }
    
    Poi ne ho fatto un altro:
    
    int n = 2;
    int y = (int)sqrt(n);
    int k = n % y;
    int x;
    
                        while ( y <= 10)
                        {
                         x = n / y;
                         if ( k == 0)
                         n++;
                         else
                         cout << n <<"\n";
                         }
    
    Quest'ultimo nemmeno restituisce nulla, forse non ho ben capito come funziona il while, for, if else.,
    perchè sennò non si spiega ...

    Grazie delle eventuali risposte.
Devi accedere o registrarti per scrivere nel forum
5 risposte