@belikovss

Написал программу, которая определяет тип числа — составное или простое. Так ли всё ужасно написано?

Написал программу, которая определяет тип числа, составное или простое. Хочу сдать свой код на проверку более опытным людям, с целью обнаружения собственных ошибок и анализа других, более коротких решений.

Код:
number = int(input("Укажите число!: "))

# цикл переберающий сгенерированный список чисел,
# за счёт который будет опредяться тип числа
for i in range(2, 12):
	# если число из списка будет равно самому числу, итерация будет пропускаться
	# ибо любое число делится само на себя
	if i == number:
		continue
	# если число делится хотя бы на какое либо число, кроме единицы и самого себя,
	# то будет выводиться тип числа и произойдёт выход из цикла
	elif number % i == 0:
		print(f'\nСоставное число - {number}.')
		break
	# проверкой i == 11, я узнаю что это последний элемент сгенерированного списка
	# и, если уж число не делится даже на 11, то говорю что это простое число
	elif i == 11 and number % i != 0:
		print(f'\nПростое число - {number}.')
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
@CleanyBoom
Почему ты берёшь число 12, а не то, которое перебираешь, он же может делится скажем на 17

И да, столько комментариев ни к чему как написали выше
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@UberPool
Python/JS coder
По коду вроде не всё так плохо,единственное зря столько комментариев,они нужны в моментах где прям сложная конструкция.А вообще по оформлению и чистоте кода почитайте pep8.
Ответ написан
@mkone112
Начинающий питонист.
Друзья, написал очень простое сочинение, которое описывает красоту моего края — хорошая она или плохая. Так ли всё ужасно написано?
Текст:
Пагода харошая(а может и нет).

, сорян)

Да х*й знает)

мне 16 лет

прошу не ругать меня, за то что являюсь возможно* тугодумом ;)

Ты серьезно считаешь что это нужно в тексте вопроса?
Ответ написан
Комментировать
nikkyhud
@nikkyhud
Пишу скрипты на python
def F(n):
    # начало с 2, ибо любое число делится на 1
    d = 2
    # увеличиваем делитель, пока число не делится на этот делитель
    while n % d !=0:
        d+=1
    # если делитель равен данному числу, то у данного числа нет делителей кроме 1 и самого числа => оно простое
    if n == d:
        return True
    # return обрабатывается лишь раз, поэтому если число простое, то он вернет True и выйдет из блока программы
    # не дойдя до False
    return False


print(F(7))
print(F(12))


Стандартная проверка на простое число, вообще можно оптимизировать данный код и искать делители числа только до sqrt(n), ибо дальше если и есть множитель, то он будет иметь в пару множитель, который находится до sqrt(n). Доказывать этот факт не буду, разбор есть на youtube.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы