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.

  • 🔢 Pravilo definicije: Prost broj je veći od 1 i djeljiv je samo s 1 i samim sobom, što u potpunosti isključuje 0 i 1.
  • 🔁 Skeniranje raspona: Vanjska petlja ide od 2 do gornje granice i delegira svaku vrijednost metodi provjere koja se može ponovno koristiti.
  • Booleova metoda: CheckPrime vraća false za prvi pronađeni djelitelj i true kada se petlja završi bez podudaranja.
  • Granica djelitelja: Testiranje do polovice vrijednosti je točno i zaustavite seping kod kvadratnog korijena daje isti odgovor puno brže.
  • 🧮 Skup rezultata: Između 1 i 100 postoji točno 25 prostih brojeva, a završava s 97.
  • Metoda sita: Eratostenovo sito označava višekratnike u logičkom nizu i izvršava se u vremenu O(n log log n).
  • 🧪 Praksa verifikacije: Prije nego što povjerujete bilo kojoj implementaciji, provjerite je li 2 uključeno, a 1 isključeno.

Glavni Numbers 1 do 100 inča Java

Š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 CheckPrime utvrditi 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 numberToCheck u cijelosti djeljiv s drugim brojem, vraćamo false i petlja je prekinuta.
  • If numberToCheck je primarni, vraćamo true.
  • U glavnoj metodi za proste brojeve od 1 do 100 in Java, provjerite je li isPrime TRUE i 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:

  1. Napravite logički niz veličine n+1 i pretpostavite da je svaki indeks od 2 naviše prost.
  2. Počevši od 2, označi svaki višekratnik trenutnog prostog broja kao složeni.
  3. 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.

Pitanja i odgovori

Ima ih točno 25. Niz počinje na 2 i završava na 97, a gustoća se stalno smanjuje kako vrijednosti rastu.

Unutarnji uvjet petlje postaje 2 <= 1, što je odmah lažno, pa se ne izvršava dijeljenje i metoda vraća istinu. Taj pojedinačni slučaj vrijedi testirati u svakoj implementaciji.

Promijenite varijablu maxCheck na 500. Za početak iznad 1, prilagodite početnu vrijednost brojača vanjske petlje i ostavite metodu provjere netaknutom.

Svaki manji višekratnik p već sadrži manji prosti djelitelj i bio je označen tijekom ranijeg prolaza. Početak od p na kvadrat izbjegava ponavljanje tog rada.

Obično vraćaju probno dijeljenje osim ako upit ne spominje veliki raspon ili performanse. Navođenje gornje granice u zahtjevu obično umjesto toga rezultira sitom.

Prosti brojevi se odabiru kao veličine hash tablice i bucketa značajki jer ravnomjerno raspoređuju ključeve i smanjuju kolizije. Oni također daju početno značenje hash funkcijama koje se koriste u vektorizaciji značajki.

Sažmite ovu objavu uz: