PROBLEMA Aiuto!! Programma sui numeri primi in C!!

Alby_x188

Utente Attivo
22
0
CPU
Intel Core Duo Quad Q8300 2.5GHz
Scheda Madre
Ipiel-LA 3
HDD
500Gb
RAM
Elpida DDR3 2048Mb 2x3
GPU
HD Radeon 4350 880MHz 512 Mb
Audio
Realtek High Defition Audio Subwoofer 80Watt Philips + 2 casse 20Watt
Monitor
HP 2009v 22" LCD
PSU
500 Watt
Case
HP
OS
Windows 7 Home Edition 64bit
Salve popolo di tomshw! Frequento il III anno ITIS informatica. La prof mi ha lasciato codesto esercizio:

"Dato in input un numero N, determina tutti i numeri primi da 2 a N-1 (compreso)".

Premettendo che ho già sviluppato un algoritmo che determina se UN NUMERO e' primo o meno, questo non riesco!!

In testa un procedimento ce l'ho, ma sul compilatore (DEV c++) non riesco a svilupparlo.

Io non copio, infatti non voglio nessun frammento di codice, ma se mi potreste aiutare con il rpocedimento, ve ne sarei grato :)
 

SolidSnake4

Utente Attivo
258
5
CPU
AMD FX 8150
Scheda Madre
ASUS CROSSHAIR V FORMULA
RAM
ram 16gb kit (4x4GB) DDR3 2133MHZ CL11 RipjawsX
GPU
ATI RADEON 7970 Sapphire Vapor-x
Monitor
SAMSUNG S27B550V
PSU
CROSSHAIR TX850
Case
HAFX 942
OS
winzozz/linux
Bè se come dici hai già sviluppato la porzione di codice che determina se il numero è primo oppure no, che difficoltà incontri a riptere quella porzione di codice da 2 a N-1 ?
 
M

Mursey

Ospite
Curioso... personalmente credo sia piu' difficile l'algoritmo che hai gia' fatto rispetto al cilclo che lo chiama e torna un array...
 
  • Mi piace
Reazioni: SolidSnake4
L

lock3r

Ospite
Io farei così: prendi il numero N che ti ha dato, inizializzi un indice intero a 2, e lanci un ciclo.

La condizione è che l'indice vada da 2 ad N-1.

Ad ogni iterazione, controlli tramite il tuo algoritmo il valore dell'indice, e salvi ogni valore primo in un array.
Alla fine ritorni l'array. O lo stampi a schermo. Quello che ti pare. Anche se io userei per comodità qualcosa di più flessibile di un array, tipo un vector, ma solo per comodità e perché sono pigro.

Dai uno sguardo al link e leggi sempre bene la documentazione ufficiale.

Per il resto non capisco la difficoltà che hai incontrato. Si trattava di fare un ciclo. Ciao. :)

http://www.cplusplus.com/reference/vector/vector/


@Mursey: :lol: anche io! :)
 

SolidSnake4

Utente Attivo
258
5
CPU
AMD FX 8150
Scheda Madre
ASUS CROSSHAIR V FORMULA
RAM
ram 16gb kit (4x4GB) DDR3 2133MHZ CL11 RipjawsX
GPU
ATI RADEON 7970 Sapphire Vapor-x
Monitor
SAMSUNG S27B550V
PSU
CROSSHAIR TX850
Case
HAFX 942
OS
winzozz/linux
Anche se il testo non prevede utilizzo di array, dice solo di determinare solo i valori, quindi mi sembra eccessivo il vector. Ma non vorrei che nel frattempo che battibecchiamo tra di noi Alby_x188 non abbia ripensato che leggendo il suo post aveva anche incosciamente datosi da solo la risposta. :D LoL
 
L

lock3r

Ospite
Anche se il testo non prevede utilizzo di array, dice solo di determinare solo i valori, quindi mi sembra eccessivo il vector. Ma non vorrei che nel frattempo che battibecchiamo tra di noi Alby_x188 non abbia ripensato che leggendo il suo post aveva anche incosciamente datosi da solo la risposta. :D LoL

Eh lo so c'hai ragione, ma sono estremamente pigro e mi piace lavorare ad alto livello :asd:
 

Alby_x188

Utente Attivo
22
0
CPU
Intel Core Duo Quad Q8300 2.5GHz
Scheda Madre
Ipiel-LA 3
HDD
500Gb
RAM
Elpida DDR3 2048Mb 2x3
GPU
HD Radeon 4350 880MHz 512 Mb
Audio
Realtek High Defition Audio Subwoofer 80Watt Philips + 2 casse 20Watt
Monitor
HP 2009v 22" LCD
PSU
500 Watt
Case
HP
OS
Windows 7 Home Edition 64bit
Innanzitutto non ho ancora studiato i vettori, la prof ha detto che li faremo dopo le vacanze. Dopo lei mi ha detto che ci sono molti metodi x risolvere il problema, e lei ci ha consigliato in modo enigmaatico di mettere "un ciclo dentro un ciclo". A qualcuno è venuto niente di nuovo?
 
M

Mursey

Ospite
Allora non usare nessun vettore e stampa a video i numeri primi.
Fai una funzione che determina se un numero e' primo e quindi un cliclo che la chiama stampando a video se lei torna un "true".
 

Alby_x188

Utente Attivo
22
0
CPU
Intel Core Duo Quad Q8300 2.5GHz
Scheda Madre
Ipiel-LA 3
HDD
500Gb
RAM
Elpida DDR3 2048Mb 2x3
GPU
HD Radeon 4350 880MHz 512 Mb
Audio
Realtek High Defition Audio Subwoofer 80Watt Philips + 2 casse 20Watt
Monitor
HP 2009v 22" LCD
PSU
500 Watt
Case
HP
OS
Windows 7 Home Edition 64bit
Ancora non abbiamo fatto le funzioni. Siamo arrivato al ciclo while e utilizzato le librerie stdlib.h; math.h; stdio.h.
Se mi spieghi o mi dai qualche fonte sul come creare e utilizzare funzioni, mi porto avanti con il lavoro :)
 

signore del tempo

Utente Èlite
3,228
491
CPU
Intel Core i5 4670K
Scheda Madre
Asus Z87-Plus
HDD
WD Caviar Green 500GB
RAM
G.Skill Ares 2x4GB 1600MHz
GPU
Sapphire 7850 1GB @ 1050MHz
Audio
Integrata
Monitor
Acer V193w
PSU
XFX ProSeries 550W Core Edition
Case
CM HAF 912 plus
OS
ArchLinux + KDE - Windows 10
Come fate a studiare math.h senza studiare le funzioni?
 

Alby_x188

Utente Attivo
22
0
CPU
Intel Core Duo Quad Q8300 2.5GHz
Scheda Madre
Ipiel-LA 3
HDD
500Gb
RAM
Elpida DDR3 2048Mb 2x3
GPU
HD Radeon 4350 880MHz 512 Mb
Audio
Realtek High Defition Audio Subwoofer 80Watt Philips + 2 casse 20Watt
Monitor
HP 2009v 22" LCD
PSU
500 Watt
Case
HP
OS
Windows 7 Home Edition 64bit

lumo

Nuovo Utente
4
0
Innanzitutto non ho ancora studiato i vettori, la prof ha detto che li faremo dopo le vacanze. Dopo lei mi ha detto che ci sono molti metodi x risolvere il problema, e lei ci ha consigliato in modo enigmaatico di mettere "un ciclo dentro un ciclo". A qualcuno è venuto niente di nuovo?
Se il tuo problema è il loop dentro il loop, guarda questo:
Codice:
int i;
for(i = 0; i < 5; i++)
{
    int j;
    for(j = 0; j < 4; j++)
    {
        printf("%d,%d\n", i, j);
    }
}
Eseguilo, leggi l'output, convinciti che funziona e capisci come funziona.

Se lo farai probabilmente avrai il "lampo di genio" :-)

Come fate a studiare math.h senza studiare le funzioni?
Paradossi dell'insegnamento della programmazione.
 

Twentyone

Utente Attivo
319
47
CPU
fx-4100
HDD
WD 1Tb 7200rpm sata3
RAM
8Gb Corsair 1600Mhz
GPU
Radeon HD 6770
OS
Archlinux
Lanci un ciclo che faccia partire una variabile (chiamiamola V) da 2 e si concluda a N-1.

All'interno di questo ciclo ne fai partire un altro con la variabile C che parte da 2 e arriva a V-1, all'interno di questo ciclo controlli se V%C=0, se true stampi a video V ed esci dal secondo ciclo.

Hai due cicli e non usi ne vettori ne funzioni
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!