Простое число – это положительное целое число больше 1, которое можно без остатка поделить только на 1 и на само себя.
Как определить является ли число простым
Чтобы определить является ли число простым, необходимо его поделить на 2, затем на 3, 4, . n, до тех пор, пока n не станет равным самому числу. Если это число разделится без остатка только на само себя, то оно является простым.
Пример №1
Определим является ли число 5 простым:
Делаем вывод, что число 5 является простым.
Пример №2
Определим является ли число 6 простым:
Так как 6 поделилось на 2 без остатка, можно сделать вывод, что число 6 не является простым.
Источник: poschitat.online
Блог
Как узнать простое число или нет?
Программа на Python для проверки того, является ли число простым или нет
- Post author: admin
- Запись опубликована: 16 декабря, 2021
- Post category: Python язык программирования
Учитывая положительное целое число N, задача состоит в том, чтобы написать программу на Python, чтобы проверить, является ли это число основной или нет.
Определение: Простое число-это натуральное число, большее 1, у которого нет положительных делителей, кроме 1 и самого себя. Первые несколько простых чисел .
Примеры :
Input: n = 11 Output: true Input: n = 15 Output: false Input: n = 1 Output: false
Идея решения этой проблемы состоит в том, чтобы повторить все числа, начиная с 2 до (N/2), используя цикл for, и для каждого числа проверить, разделяет ли оно N. Если мы найдем любое число, которое делится, мы вернем false. Если мы не нашли никакого числа между 2 и N/2, которое делит N, то это означает, что N-простое число, и мы вернем True.
Ниже приведена программа Python, чтобы проверить, является ли число простым:
# Python program to check if # given number is prime or not num = 11 # If given number is greater than 1 if num > 1: # Iterate from 2 to n / 2 for i in range(2, int(num/2)+1): # If num is divisible by any number between # 2 and n / 2, it is not prime if (num % i) == 0: print(num, «is not a prime number») break else: print(num, «is a prime number») else: print(num, «is not a prime number»)
Выход:
11 is a prime number
Оптимизированный Способ
Мы можем выполнить следующие оптимизации:
Вместо того, чтобы проверять до n, мы можем проверять до √n, потому что больший фактор n должен быть кратен меньшему фактору, который уже был проверен.
Теперь давайте посмотрим код первого метода оптимизации ( т. е. Проверим до √n )
from math import sqrt # n is the number to be check whether it is prime or not n = 1 # no lets check from 2 to sqrt(n) # if we found any facto then we can print as not a prime number # this flag maintains status whether the n is prime or not prime_flag = 0 if(n > 1): for i in range(2, int(sqrt(n)) + 1): if (n % i == 0): prime_flag = 1 break if (prime_flag == 0): print(«true») else: print(«false») else: print(«false»)
Выход:
Алгоритм можно дополнительно улучшить, заметив, что все простые числа имеют вид 6k ± 1, за исключением 2 и 3. Это связано с тем, что все целые числа могут быть выражены как (6k + i) для некоторого целого числа k и для i = -1, 0, 1, 2, 3, или 4; 2 деления (6k + 0), (6k + 2), (6k + 4); и 3 деления (6k + 3). Таким образом, более эффективный метод состоит в том, чтобы проверить, делится ли n на 2 или 3, а затем проверить все числа формы 6k ± 1.
Проверка простоты числа перебором делителей. Решение задачи на Python
Вам также может понравиться
Запоминание с использованием декораторов в Python
19 декабря, 2021
Основы Selenium – Компоненты, функции, использование и ограничения.
5 декабря, 2021
Как установить Selenium в Python?
5 декабря, 2021
- О нас
- Онлайн игры
- Конвертеры
- Base64 конвертер онлайн
- Оформление кода JavaScript CSS HTML Онлайн
- URL Encoder (кодировщик) / Decoder (декодировщик) онлайн
- Конвертер регистров
- Рассчитать количество дней между датами
- Генератор ключей и паролей
- Генератор QR кодов
- Преобразование времени
- Преобразование микросекунд в секунды
- Преобразование микросекунд в миллисекунды
- Преобразование миллисекунд в микросекунды
- Преобразование миллисекунд в секунды
- Преобразование миллисекунд в минуты
- Преобразование миллисекунд в часы
- Преобразователь миллисекунд в дату
- Преобразование секунд в миллисекунды
- Преобразование секунд в минуты
- Преобразование секунд в часы
- Преобразование секунд в дни
- Преобразование минут во время
- Преобразование минут в миллисекунды
- Преобразование минут в секунды
- Преобразование минут в часы
- Преобразование часов в миллисекунды
- Преобразование часов в секунды
- Преобразование часов в минуты
- Преобразование часов в дни
- Преобразование дней в часы
- Преобразование из часы в недели
- Конвертация из недели в часы
- Через несколько часов калькулятор
- Преобразование времени AM/PM в 24-часовое
- Преобразование Военного Времени
- Время до десятичного калькулятора
- Безопасность
- Финансы
- Энциклопедия
Источник: programbox.ru
Программа простое число или нет
: 8
Простое число или нет. С#
Здравствуйте. Суть такова.
Задание: «Написать программу проверки является ли число простым, установить ширину поля 10 символов.»
Есть такие наработки, что-то не догоняю как оптимизировать код, что бы программа не выводила сообщение «Число не является простым» или «Число является простым» в цикле. Например, при проверке числа 7, консоль 5 раз выводит сообщение «Число является простым», а при проверке, например, числа 121, которые не является простым у программы просто едет крыша (выводится примерно 40 сообщение «простое» и в один раз «не простое»)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < Console.WriteLine(«Ввод числа:»); < int x = int.Parse(Console.ReadLine()); Prost(x); Console.ReadKey(); >> private static void Prost(int x) < for (int i = 2; i > > >
Форумчанин
: 975
Можно поправить вот таким способом:
private static void Prost(int x) < bool isSimple = true; for (int i = 2; i < x; i++) < if (x % i == 0) < isSimple = false; break; >> if (isSimple) Console.WriteLine(«Число не является простым»); else Console.WriteLine(«Число является простым»); >
p.s. необязательно до самого x цикл прогонять, достаточно половины от x
Благодарить в репутацию. Проклинать — туда же
: 8
Можно поправить вот таким способом:
private static void Prost(int x) < bool isSimple = true; for (int i = 2; i < x; i++) < if (x % i == 0) < isSimple = false; break; >> if (isSimple) Console.WriteLine(«Число не является простым»); else Console.WriteLine(«Число является простым»); >
p.s. необязательно до самого x цикл прогонять, достаточно половины от x
Огромное спасибо за помощь! Оказывается так просто и гениально!
Источник: www.programmersforum.ru