@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}.')
  • Вопрос задан
  • 843 просмотра
Решения вопроса 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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