Создайте программу которая находит и выводит все простые числа меньше 100 java
Перейти к содержимому

Создайте программу которая находит и выводит все простые числа меньше 100 java

Печать простого числа от 1 до 100

Эта программа должна выводить простые числа от 1 до 100. Кто-нибудь объяснит мне, как работает программа ниже? У меня возникли трудности с написанием программы ниже. Я нашел его в Интернете, но до сих пор не могу понять, как он работает и как будет проходить программа?

Результатом примера простых чисел будут простые числа от 1 до 100.

1 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

7 ответов

Как найти простое число с помощью простого ванильного раствора? Если число простое. Оно не будет кратно никакому другому числу, кроме самого себя. Итак, предположим, что число равно х. Это число не будет делиться ни на одно число, начиная с 2 до x-1. Почему надо начинать с 2, а не с 1, ведь каждое число делится на 1. Приведенный выше код пытается воспроизвести то же поведение. Чтобы найти все простые числа от 1 до 99 (согласно циклу):

  1. От 2 до числа от (внешняя петля — 1)
  2. Попробуйте разделить число и проверьте, делится ли оно. (остаток должен быть равен нулю).
  3. Если истинное число не простое. Остальное число простое.

Число, которое делится только само на себя и на 1, известно как простое число. Вот простейшая версия кода для нахождения простых чисел от 1 до 100.

Если вы разделите различные части на их собственные методы с соответствующими именами, станет немного легче понять:

Это также область, в которой потоки Java 8 могут немного прояснить ситуацию:

Также обратите внимание, что это ужасно неэффективный алгоритм. Вам не нужно проверять все возможные множители от 2 до n, только простые числа. Вы также можете воспользоваться преимуществами многопроцессорных машин:

Лабораторные работы (Объектно-ориентированное программирование (ООП)) / lab1

помощью нескольких простых задач программирования. Далее вы узнаете, как использовать компилятор Java и виртуальную машину Java для запуска программы. От вас потребуется решить следующие задачи:

Создайте программу, которая находит и выводит все простые числа меньше 100.

1. Создайте файл с именем Primes.java, в этом файле опишите следующий класс:

public class Primes <

public static void main(String[] args) <

Воспользовавшись данным классом, соберите и запустите программу. Так как в данной программе нет конкретной реализации, результата выполнения ее вы не увидите.

2. Внутри созданного класса, после метода main(), опишите функцию

IsPrime (Int n), которая определяет, является ли аргумент простым числом или нет. Можно предположить, что входное значение n всегда будет больше 2.

Полное описание функции будет выглядеть так: public static boolean isPrime(int n)

Данный метод вы можете реализовать по вашему усмотрению, однако простой подход заключается в использовании цикла for. Данный цикл должен перебирать числа, начиная с 2 до (но не включая) n, проверяя существует ли

какое-либо значение, делящееся на n без остатка. Для этого можно использовать оператора остатка “%”. Например, 17%7 равняется 3, и 16%4

равно 0. Если какая-либо переменная полностью делится на аргумент,

сработает оператор return false. Если же значение не делится на аргумент без остатка, то это простое число, и оператор покажет return true. (Оператор return в Java используется для возврата данных из функции, таким способом закрывается метод.)

3. После того, как этот участок будет реализован, приступайте к заполнению основного метода main() другим циклом, который перебирает числа в диапазоне от 2 до 100 включительно. Необходимо вывести на печать те значения, которые ваш помощник IsPrime () посчитал простыми.

4. После завершения вашей программы скомпилируйте и протестируйте её. Убедитесь, что результаты правильные. В интернете вы сможете найти списки простых чисел.

Кроме того, как видно из примера, не следует забывать об использовании комментариев: перед классом с его назначением и перед методом с его целью.

Когда вы пишете программы, крайне важно писать подобные комментарии.

Вторая программа, которую вам необходимо будет написать, показывает,

является ли строка палиндромом.

1. Для этой программы, создайте класс с именем Palindrome в файле под названием Palindrome.java. На этот раз вы можете воспользоваться следующим кодом:

public class Palindrome <

String s = args[i];

Скомпилируйте и запустите эту программу в таком виде, результат работы не будет отображен.

2. Ваша первая задача состоит в том, чтобы создать метод, позволяющий полностью изменить символы в строке. Сигнатура (последовательность) метода должна быть следующей:

public static String reverseString(Strings)

Вы можете реализовать этот метод путем создания локальной переменной, которая начинается со строки «», а затем добавлять символы из входной строки в выходные данные, в обратном порядке. Используйте метод length(), который возвращает длину строки, и метод charAt(int index), который возвращает символ по указанному индексу. Индексы начинаются с 0 и

увеличиваются на 1. Например:

String s = «pizzeria»;

System.out.println(s.length()); //Выводим 8

System.out.println(s.charAt(5)); //Выводим r

Вы можете использовать оператор конкатенации (соединения) строк +

или оператор +=, на ваше усмотрение.

3. После того, как вы применили метод reverseString (), создайте еще один метод public static boolean isPalindrome(String s). Этот метод должен перевернуть слово s, а затем сравнить с первоначальными данными.

Используйте метод Equals (Object) для проверки значения равенства. Например:

String s1 = «hello»;

String s2 = «Hello»;

String s3 = «hello»; s1.equals(s2); // Истина s1.equals(s3); // Ложь

Не используйте == для проверки равенства строк. Этим занимается другой тест в Java, который будет рассмотрен далее.

4. Скомпилируйте и протестируйте программу! На этот раз входными данными будут аргументы командной строки, например:

java Palindrome madam racecar apple kayak song noon

Ваша программа должна вывести ответ, является ли каждое слово палиндром.

5. Убедитесь в наличии комментариев, где указаны назначения вашей программы и используемых методов.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Какой самый быстрый способ проверить на простоту в Java?

Я пытаюсь найти самый быстрый способ проверить, является ли данное число простым или нет (в Java). Ниже приведены несколько методов тестирования простоты, которые я придумал. Есть ли лучший способ, чем вторая реализация (isPrime2)?

14 ответов

Вот еще один способ:

и BigInteger’s isProbablePrime(. ) действительно для всех 32-битных int ‘s.

ИЗМЕНИТЬ

Обратите внимание, что isProbablePrime(certainty) не всегда дает правильный ответ. Когда достоверность находится на низкой стороне, она дает ложные срабатывания, как @ dimo414 упоминал в комментариях.

К сожалению, я не смог найти источник, который утверждал, что isProbablePrime(certainty) действителен для всех (32-разрядных) int (достаточно уверенно!).

Итак, я выполнил пару тестов. Я создал BitSet размером Integer.MAX_VALUE/2 , представляющий все неравные числа и использовали простое сито, чтобы найти все простые числа в диапазоне 1..Integer.MAX_VALUE . Затем я зациклился на i=1..Integer.MAX_VALUE , чтобы проверить, что каждый new BigInteger(String.valueOf(i)).isProbablePrime(certainty) == isPrime(i) .

Для достоверности 5 и 10 isProbablePrime(. ) выдает ложные срабатывания вдоль линии. Но с isProbablePrime(15) ни один тест не пройден.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *