Java Програма для друку Prime Numbers від 1 в 100
⚡ Розумний підсумок
Програма для друку простих чисел від 1 до 100 дюймів Java сканує кожне значення в діапазоні та видає ті, що мають рівно два дільники. У цій статті пояснюється визначення, метод перевірки, повна програма, решето Ератосфена та порівняння продуктивності з перевіреним виходом.

Що таке просте число?
A Просте число — це число, яке ділиться лише на одиницю або на саме себе. Це натуральне число, більше за одиницю, яке не є добутком двох менших натуральних чисел. Наприклад, 11 ділиться лише на одиницю або на саме себе. Інші прості числа — це 2, 3, 5, 7, 11, 13, 17 тощо.
Примітка: 0 і 1 не є простими числами. 2 — єдине парне просте число.
Між числами від 1 до 100 знаходиться рівно 25 простих чисел. Сітка нижче групує їх за десятиліттями, що робить закономірність зменшення кількості простих чисел помітною зі зростанням значень.
| Діапазон | Prime Numbers | Рахувати |
|---|---|---|
| 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 |
Як друкувати Prime Numbers Від 1 до 100 програм Java
Нижче наведено Java програма для друку простих чисел від 1 до 100:
Логіка програми:
- Основний метод програма простих чисел в Java містить цикл для перевірки простих чисел від 1 до 100 одне за одним.
- Основний метод викликає метод
CheckPrimeвизначити, чи є число простим числом у Java чи ні. - Нам потрібно поділити вхідне число, скажімо, 17, на значення від 2 до 17 і перевірити остачу. Якщо остача дорівнює 0, число не є простим.
- Жодне число не ділиться більше ніж на половину самого себе. Тому нам потрібно пройтися по numberToCheck/2. Якщо вхідне число — 17, половина — 8.5, і цикл перебиратиме значення від 2 до 8.
- If
numberToCheckповністю ділиться на інше число, ми повертаємо значення false, і цикл розривається. - If
numberToCheckє простим, ми повертаємо true. - В основному методі для простих чисел від 1 до 100 в Java, перевірте, чи isPrime є
TRUEі додайте значення до простого числаNumbersЗнайдено рядок. - Нарешті, виведіть прості числа від 1 до 100 дюймів Java.
Виділення перевірки в окремий метод робить програму придатною для повторного використання. Той самий метод CheckPrime можна викликати з будь-якою верхньою межею, просто змінивши змінну 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;
}
}
Очікуваний результат:
Вивід простого числа від 1 до 100 у Java більшість квитків вже розпродано! буде:
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
Значення 2 проходить, оскільки умова внутрішнього циклу i <= 2 / 2 оцінюється як 2 <= 1, що одразу є хибним, тому метод повертає true без жодного ділення.
Оптимізована версія з використанням межі квадратного кореня
Ділення до половини числа є правильним, але виконує зайву роботу. Дільники завжди зустрічаються парами навколо квадратного кореня, тому будь-який множник вище √n має партнера нижче нього, якого вже перевірили.
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; } }
вихід:
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
💡 Порада: StringBuilder замінює повторювану конкатенацію рядків усередині циклу. Кожна += у рядку створюється новий об'єкт, який стає вимірюваним, як тільки верхня межа досягає кількох тисяч.
Print Prime Numbers Використання решета Ератосфена
Коли потрібні всі прості числа в діапазоні, пробне ділення — неправильний інструмент. Решето Ератосфена будує логічний масив, позначає кратні кожного простого числа як складені та зчитує все, що залишилося непозначеним.
Метод працює у три кроки:
- Створіть логічний масив розміром n+1 та припустіть, що кожен індекс від 2 і вище є простим числом.
- Починаючи з 2, позначте кожне кратне поточного простого числа як складене.
- Перейдіть до наступного немаркованого індексу та повторюйте, доки не буде передано квадратний корінь з 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()); } }
вихід:
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
Порівняння трьох підходів
Усі три програми друкують однакові 25 значень, тому вибір повністю залежить від розміру діапазону.
| Підхід | Складність часу | Додаткова пам'ять | Найкращий діапазон |
|---|---|---|---|
| Пробне ділення на n/2 | O (n²) | O (1) | До кількох тисяч |
| Пробне ділення на √n | O(n√n) | O (1) | До кількох сотень тисяч |
| Решето Ератосфена | O(n log log n) | О (п) | Мільйони цінностей |
Перегляньте нашу програму, щоб дізнатися прості числа з будь-якого вхідного числа коли потрібно перевірити одне значення, а не діапазон. Для подальших вправ на основі циклу перегляньте Ряд Фібоначчі в Java, Java програма-паліндром, А Bubble Алгоритм сортування в JavaБулевий масив, який використовується решетом, пояснюється далі в Java масиви.
