English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo articolo, imparerete a controllare se un numero è un numero primo. Questo viene fatto utilizzando il ciclo for e while in Java.
Un numero primo è un numero che può essere diviso solo da due numeri: 1 e se stesso. Pertanto, se un numero può essere diviso da altri numeri oltre 1 e se stesso, non è un numero primo.
public class Prime { public static void main(String[] args) { int num = 29; boolean flag = false; for(int i = 2; i <= num/2; ++i) { // Condizione non di numero primo if (num % i == 0) { flag = true; break; } } if (!flag) System.out.println(num + " è un numero primo"); else System.out.println(num + " non è un numero primo"); } }
Risultato di output
29 è un numero primo
Nel programma sopra, il ciclo for viene utilizzato per determinare se il numero dato num è un numero primo.
Ecco, notate che partiamo dal 2 e iteriamo fino a num / 2. Questo perché un numero non può essere diviso da più della metà dei suoi numeri interi.
All'interno del ciclo for, controlliamo se il numero è divisibile da qualsiasi altro numero nella gamma data (2...num/2).
Se num viene diviso, flag viene impostato su true e usciamo dal ciclo. Questo determina che num non è un numero primo.
Se num non può essere diviso da nessun altro numero, flag diventa false e num è un numero primo.
public class Prime { public static void main(String[] args) { int num = 33, i = 2; boolean flag = false; while (i <= num / 2) { // Condizione non di numero primo if (num % i == 0) { flag = true; break; } ++i; } if (!flag) System.out.println(num + " è un numero primo"); else System.out.println(num + " non è un numero primo"); } }
Risultato di output
33 non è un numero primo
Nel programma sopra, sostituisci il ciclo for con il ciclo while. Il ciclo esegue fino a quando i <= num / 2. In ogni iterazione, controlla se num è divisibile per i e aggiungi 1 al valore di i.
Visita questa pagina per sapere comeMostra tutti i numeri primi tra due intervalli di tempo。