Вопрос задан 21.06.2023 в 17:43. Предмет Информатика. Спрашивает Козубенко Саша.

Помогите пожалуйста , не могу понять как решить Проверка числа на простоту Дано натуральное число

x>1. Проверьте, является ли оно простым. Программа должна вывести слово YES, если число простое, и NO, если число составное. Входные данные Вводится натуральное число, не превосходящее 231231. Выходные данные Выведите ответ на задачу. Примеры Ввод 1 2 Вывод YES Ввод 2 4 Вывод NO x = int(input()) for i in range(2, x+1): if x % i == 0 and x != i: print('NO') break else: print('YES') break Это моя прога, но она почему то выдает ошибку. Помогите исправить или напишите пожалуйста правильную программу
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Андреев Максим.

Ответ:

x = int(input())

for i in range(2,x+1):

   if x%i == 0 and x!=i:

       print('NO')

       break

   else:

       print('YES')

       break


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа, которую вы предложили, содержит ошибки. Проблема заключается в том, что она будет выводить "NO" на каждом шаге цикла, если условие x % i == 0 and x != i выполняется. Однако, чтобы определить, является ли число простым, вам нужно проверить, делится ли оно нацело только на 1 и само себя. Вот исправленный вариант программы:

python
x = int(input()) # Проверка на простоту if x <= 1: print('NO') elif x == 2: print('YES') else: for i in range(2, int(x**0.5) + 1): if x % i == 0: print('NO') break else: print('YES')

Этот код сначала проверяет, не является ли введенное число меньше или равным 1 (в таком случае оно не является простым). Затем программа выполняет цикл, который проверяет, делится ли число нацело на какое-либо число в диапазоне от 2 до квадратного корня из x. Если находится делитель, программа выводит 'NO'. Если же цикл завершается без нахождения делителя, то число считается простым, и программа выводит 'YES'.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос