Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-08-2009, 19:04   #1
Dimension7
Senior Member
 
L'Avatar di Dimension7
 
Iscritto dal: Aug 2007
Città: Viterbo
Messaggi: 2559
[C++] Verificare se un numero sia primo o meno

Sto facendo per esercizio un programmino che mi dice se un numero è primo o no, solo che a parte per i primi due if (cioè per i<=0, i=1,2,3) non funziona, mi stampa sempre "Non è un numero primo". Il problema quindi credo sia nel for, magari nell'uso errato del modulo...

Metodo:

Codice:
bool isNumPrimo(int i){
    if(i<=0){
        cout << "Numero minore o uguale a 0" << endl;
        return false;
    }
    if(i==1 || i==2 || i==3){
        return true;
    }
    for(int j=2;j<i;i++){
        if(i%j==0){
            return false;
        }
    }
    return true;
}
Main:

Codice:
int main(int argc, char *argv[])
{
    int num;
    cout << "Questo programma verifica se un numero è primo o no" << endl;
    cout << "Inserisci il numero" << endl;
    cin >> num;
    bool risposta=isNumPrimo(num);
    if(risposta){
        cout << num << " è un numero primo" << endl;
    }
    else{
        cout << num << " non è un numero primo" << endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
__________________
Coolermaster Centurion 590 - Asus M4A78PRO - Phenom II 720 - HIS 6950 IceQ X Turbo 2GB - 2x2 Gb Corsair XMMS2 - Crucial MX300 500gb - HD WD 500gb - Asus VW246H - Windows 7 Pro 64bit
Dimension7 è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2009, 20:24   #2
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
nel for incrementi la variabile sbagliata. inoltre puoi fermarti a i/2, non serve arrivare ad i
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2009, 21:21   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da VegetaSSJ5 Guarda i messaggi
inoltre puoi fermarti a i/2, non serve arrivare ad i
In realtà ci si può fermare anche a sqrt(i) se non erro.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2009, 22:35   #4
Dimension7
Senior Member
 
L'Avatar di Dimension7
 
Iscritto dal: Aug 2007
Città: Viterbo
Messaggi: 2559
Ecco, mi sono confuso perchè di solito i lo uso per gli indici
Grazie per le risposte, poi ragionerò su qual è matematicamente il limite entro cui far andare il ciclo
__________________
Coolermaster Centurion 590 - Asus M4A78PRO - Phenom II 720 - HIS 6950 IceQ X Turbo 2GB - 2x2 Gb Corsair XMMS2 - Crucial MX300 500gb - HD WD 500gb - Asus VW246H - Windows 7 Pro 64bit
Dimension7 è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2009, 11:28   #5
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Quote:
Originariamente inviato da Dimension7 Guarda i messaggi
Ecco, mi sono confuso perchè di solito i lo uso per gli indici
Grazie per le risposte, poi ragionerò su qual è matematicamente il limite entro cui far andare il ciclo
Aiutino... è la radice quadrata... prova a dimostrare il perchè...
_Claudio è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2009, 16:14   #6
Silma
Member
 
L'Avatar di Silma
 
Iscritto dal: Jun 2007
Città: Lecco
Messaggi: 250
Puoi usare la radice quadrata, eliminare a priori i numeri pari (un if preventivo che controlla se sono divisibili per 2) e controllare a parte se il numero è 1. Dovrebbe funzionare.

Inoltre, per le divisioni successive puoi usare solo i numeri dispari (perchè se un numero è divisibile per un numero pari, è divisibile anche per 2 e quelli li abbiamo scartati in partenza!)
__________________
Asus P5Q PRO - Intel Core 2 Duo E8400 @3.2 GHz - 4GB G. Skill DDR2-1066 CL5 - Powercolor Radeon HD6870 PCS+ 1GB @940/5500 MHz - 200GB Maxtor SATAII + 1TB LaCie USB - LC-POWER Metatron Hyperion 700W PSU - Samsung XL2370 23'' Full HD LED
Firmate - Per la sicurezza di noi tutti | Progetto Traduzione "The Void"
Silma è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2009, 12:38   #7
s0nnyd3marco
Senior Member
 
L'Avatar di s0nnyd3marco
 
Iscritto dal: Aug 2006
Città: Trieste
Messaggi: 5694
Il numero 1 non è un numero primo.
http://it.wikipedia.org/wiki/Numero_primo
__________________
You should never let your fears become the boundaries of your dreams.
s0nnyd3marco è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Una tassa di 5,5 centesimi su ogni gigab...
Vuoi clonare un videogioco con l'IA? Cla...
Furto da 6,3 miliardi di dollari, Binanc...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Microsoft stravolge l'app Sicurezza di W...
Mercato smartphone in caduta libera: -20...
Android 17 QPR3 Beta 3 riporta il blocco...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v