Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 9, 2016 19:12:28

damon
Зарегистрирован: 2016-10-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

перебрать все числа от нуля до ста и вывести те которые являются простыми

def is_prime(a):
prostoe = True
for n in range(2,int (a/2)+1):
if a % n == 0:
prostoe = False
return prostoe
есть такая функция нужно ей воспользоваться и перебрать все числа от нуля до ста и вывести те которые являются простыми

Офлайн

#2 Ноя. 9, 2016 19:34:20

damon
Зарегистрирован: 2016-10-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

перебрать все числа от нуля до ста и вывести те которые являются простыми

Уже сам решил
for z in range(0,100):
is_prime(z)
if is_prime(z) == True:
print(z ,“Prostoe”)
else:
print(z, “ne prostoe”)

Офлайн

#3 Ноя. 9, 2016 21:16:57

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

перебрать все числа от нуля до ста и вывести те которые являются простыми

damon

Извиняй, братан, что не успели..

Офлайн

#4 Ноя. 10, 2016 00:43:53

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

перебрать все числа от нуля до ста и вывести те которые являются простыми

Офлайн

#5 Ноя. 10, 2016 02:25:03

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

перебрать все числа от нуля до ста и вывести те которые являются простыми

damon
Уже сам решил
 for z in range(0,100):
    is_prime(z)
    if is_prime(z) == True:
        print(z ,Prostoe)
    else:
        print(z, ne prostoe)
строчка лишняя
+1 - лишняя операция деления на каждой проверке, а 3 простое
вместо: int (a/2) достаточно a // 2
все эти манипуляции с излишней переменной ни к чему + совершается куча лишних циклов, когда можно вернуть False уже при нахождении первого делителя
это что касается мелких недочетов и питона, а теперь то что касается теории:
поиск делителя в range(a//2) добавляет кучу лишних проверок:
12/2 = 6, то есть будут проверен диапазон хотя было бы достаточно диапазона
поэтому оптимально находить значение квадратного корня из a
и вообще на диапазоне искать простые числа лучше с помощью решета Эратосфена

и тут я нашел эту тему и понял, что все я написал бесполезно)



Отредактировано izekia (Ноя. 10, 2016 02:35:55)

Офлайн

#6 Ноя. 10, 2016 09:03:53

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

перебрать все числа от нуля до ста и вывести те которые являются простыми

izekia
и вообще на диапазоне искать простые числа лучше с помощью решета Эратосфена

и тут я нашел эту тему и понял, что все я написал бесполезно)
И решето мы тоже тут делали года два назад :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version