Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    Controllare se numero è primo

    Ho fatto un esercizio che richiedeva, come da titolo, di controllare se un numero fosse primo allora ho proceduto così:
    codice:
     
    import java.util.*;
    public class NumeroPrimo{
    	public static void main(String[] args){
    		Scanner read = new Scanner(System.in);
    		System.out.println("Inserisci il numero che vuoi verificare:");
    		int n = read.nextInt();
    		int d = 0;
    		for(int i=2; i<=(n/2); i++){
    			if(n%i==0){
    				System.out.println(n+" è divisibile per "+i);
    				d = i;
    			}
    		}
    		if(d == 0);
    			System.out.println(n+" e' primo");
    	}
    }
    solo che quando inserisco un numero non primo, alla fine mi dice lo stesso che è primo!
    Forse la variabile d fuori dal ciclo non viene modificata? Se no dove ho sbagliato?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Controllare se numero è primo

    Originariamente inviato da John360
    Forse la variabile d fuori dal ciclo non viene modificata? Se no dove ho sbagliato?
    Controlla bene quell'if. Il ; è l'istruzione vuota...

    ps: Anziché fino a n/2 puoi ottimizzare arrivando a sqrt(n).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    scusami non ho capito cosa ho sbagliato nell'if... non si mette il ;??
    per quanto riguarda la radice quadrata non c'avevo pensato grazie

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da John360
    scusami non ho capito cosa ho sbagliato nell'if... non si mette il ;??
    per quanto riguarda la radice quadrata non c'avevo pensato grazie
    Tu hai scritto

    codice:
    if(d == 0) ;
        System.out.println(n+" e' primo");
    che significa: se d vale zero fai NULLA.
    Poi, in ogni caso, stampa il messaggio X è primo. La versione corretta è

    codice:
    if(d == 0)
        System.out.println(n + " e\' primo");
    Se poi il blocco if contiene più di una istruzione allora è obbligatorio inserirlo tra parentesi grafe.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ah si! non me ne ero nemmeno accorto! Errore di distrazione grazie!

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da John360
    ah si! non me ne ero nemmeno accorto! Errore di distrazione grazie!
    prego, di nulla
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.