Java Program za ispis Prime Numbers od 1 da 100
โก Pametni saลพetak
Program za ispis prostih brojeva od 1 do 100 in Java skenira svaku vrijednost u rasponu i izvjeลกtava o onima s toฤno dva djelitelja. Ovaj ฤlanak objaลกnjava definiciju, metodu provjere, cijeli program, Eratostenovo sito i usporedbu performansi s provjerenim izlazom.

ล to je prosti broj?
A Glavni broj je broj koji je djeljiv samo s jedan ili samim sobom. To je prirodni broj veฤi od jedan koji nije umnoลพak dva manja prirodna broja. Na primjer, 11 je djeljiv samo s jedan ili samim sobom. Ostali prosti brojevi su 2, 3, 5, 7, 11, 13, 17 i tako dalje.
Biljeลกka: 0 i 1 nisu prosti brojevi. 2 je jedini paran prost broj.
Izmeฤu 1 i 100 nalazi se toฤno 25 prostih brojeva. Donja mreลพa ih grupira po dekadama, ลกto ฤini uzorak prorjeฤivanja vidljivim kako vrijednosti rastu.
| Raspon | Glavni Numbers | Raฤunati |
|---|---|---|
| 1 - 20 | 2, 3, 5, 7, 11, 13, 17, 19 | 8 |
| 21 - 40 | 23, 29, 31, 37 | 4 |
| 41 - 60 | 41, 43, 47, 53, 59 | 5 |
| 61 - 80 | 61, 67, 71, 73, 79 | 5 |
| 81 - 100 | 83, 89, 97 | 3 |
Kako ispisati Prime Numbers Izmeฤu 1 do 100 programa u Java
Ispod je Java program za ispis prostih brojeva od 1 do 100:
Programska logika:
- Glavna metoda program prostih brojeva u Java sadrลพi petlju za provjeru prostih brojeva izmeฤu 1 i 100 jedan po jedan.
- Glavna metoda poziva metodu
CheckPrimeutvrditi je li broj prost broj u Java ili ne. - Moramo podijeliti ulazni broj, recimo 17, s vrijednostima od 2 do 17 i provjeriti ostatak. Ako je ostatak 0, broj nije prost.
- Nijedan broj nije djeljiv s viลกe od polovice samog sebe. Dakle, trebamo petlju proฤi kroz samo numberToCheck/2. Ako je ulaz 17, polovica je 8.5, a petlja ฤe iterirati kroz vrijednosti od 2 do 8.
- If
numberToChecku cijelosti djeljiv s drugim brojem, vraฤamo false i petlja je prekinuta. - If
numberToCheckje primarni, vraฤamo true. - U glavnoj metodi za proste brojeve od 1 do 100 in Java, provjerite je li isPrime
TRUEi dodajte vrijednost prostom brojuNumbersPronaฤeni niz. - Na kraju ispiลกite proste brojeve od 1 do 100 in Java.
Odvajanje provjere u zasebnu metodu ฤini program ponovno upotrebljivim. Ista metoda CheckPrime moลพe se pozvati s bilo kojom gornjom granicom jednostavnom promjenom varijable maxCheck.
public class PrimeNumbers {
public static void main(String[] args) {
int i;
int num = 0;
int maxCheck = 100; // maxCheck limit till which you want to find prime numbers
boolean isPrime = true;
//Empty String
String primeNumbersFound = "";
//Start loop 2 to maxCheck
for (i = 2; i <= maxCheck; i++) {
isPrime = CheckPrime(i);
if (isPrime) {
primeNumbersFound = primeNumbersFound + i + " ";
}
}
System.out.println("Prime numbers from 1 to " + maxCheck + " are:");
// Print prime numbers from 1 to maxCheck
System.out.println(primeNumbersFound);
}
public static boolean CheckPrime(int numberToCheck) {
int remainder;
for (int i = 2; i <= numberToCheck / 2; i++) {
remainder = numberToCheck % i;
//if remainder is 0 then the number is not prime and we break the loop. Else continue the loop
if (remainder == 0) {
return false;
}
}
return true;
}
}
Oฤekivani rezultat:
Izlaz prostog broja izmeฤu 1 i 100 u Java program bit ฤe:
Prime numbers from 1 to 100 are: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Vrijednost 2 prolazi jer je uvjet unutarnje petlje i <= 2 / 2 procjenjuje se na 2 <= 1, ลกto je odmah laลพno, pa metoda vraฤa istinu bez ijednog dijeljenja.
Optimizirana verzija koriลกtenjem kvadratnog korijena
Dijeljenje do polovice broja je ispravno, ali obavlja nepotreban rad. Djelitelji se uvijek pojavljuju u parovima oko drugog korijena, tako da svaki faktor iznad โn ima partnera ispod sebe koji je veฤ testiran.
public class PrimeNumbersOptimized { public static void main(String[] args) { int maxCheck = 100; int count = 0; StringBuilder result = new StringBuilder(); for (int i = 2; i <= maxCheck; i++) { if (isPrime(i)) { result.append(i).append(" "); count++; } } System.out.println("Prime numbers from 1 to " + maxCheck + " are:"); System.out.println(result.toString().trim()); System.out.println("Total primes found: " + count); } public static boolean isPrime(int n) { if (n <= 1) return false; if (n == 2) return true; if (n % 2 == 0) return false; // test only odd divisors up to the square root for (int i = 3; i * i <= n; i += 2) { if (n % i == 0) return false; } return true; } }
Izlaz:
Prime numbers from 1 to 100 are: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Total primes found: 25
๐ก Savjet: StringBuilder zamjenjuje ponovljeno spajanje stringova unutar petlje. Svaki += na nizu znakova stvara novi objekt koji postaje mjerljiv kada gornja granica dosegne nekoliko tisuฤa.
Print Prime Numbers Koriลกtenje Eratostenovog sita
Kada je potreban svaki prosti broj u rasponu, probno dijeljenje nije pravi alat. Eratostenovo sito gradi logiฤki niz, oznaฤava viลกekratnike svakog prostog broja kao sloลพene i oฤitava sve ลกto ostane neoznaฤeno.
Metoda funkcionira u tri koraka:
- Napravite logiฤki niz veliฤine n+1 i pretpostavite da je svaki indeks od 2 naviลกe prost.
- Poฤevลกi od 2, oznaฤi svaki viลกekratnik trenutnog prostog broja kao sloลพeni.
- Prijeฤite na sljedeฤi neoznaฤeni indeks i ponavljajte dok se ne dobije kvadratni korijen od n.
import java.util.Arrays; public class SieveOfEratosthenes { public static void main(String[] args) { int n = 100; boolean[] composite = new boolean[n + 1]; for (int p = 2; p * p <= n; p++) { if (!composite[p]) { // start at p*p because smaller multiples are already marked for (int multiple = p * p; multiple <= n; multiple += p) { composite[multiple] = true; } } } StringBuilder result = new StringBuilder(); for (int i = 2; i <= n; i++) { if (!composite[i]) { result.append(i).append(" "); } } System.out.println("Prime numbers from 1 to " + n + " are:"); System.out.println(result.toString().trim()); } }
Izlaz:
Prime numbers from 1 to 100 are: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Usporedba triju pristupa
Sva tri programa ispisuju istih 25 vrijednosti, tako da izbor u potpunosti ovisi o veliฤini raspona.
| Pristup | Sloลพenost vremena | Dodatna memorija | Najbolji raspon |
|---|---|---|---|
| Probno dijeljenje na n/2 | O(nยฒ) | O (1) | Do nekoliko tisuฤa |
| Probno dijeljenje na โn | O(nโn) | O (1) | Do nekoliko stotina tisuฤa |
| Sita Eratostena | O(n log log n) | O (n) | Milijuni vrijednosti |
Provjerite naลก program kako biste saznali prosti brojevi iz bilo kojeg ulaznog broja kada se mora testirati jedna vrijednost, a ne raspon. Za daljnje vjeลพbe s petljom, pregledajte Fibonaccijev niz u Java je Java palindromski program, A Bubble Algoritam sortiranja u JavaBooleov niz koji koristi sito detaljnije je objaลกnjen u Java nizovi.
