Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 23, 2011 22:41:12

bo-jutsu
От:
Зарегистрирован: 2011-12-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Определение простое число или нет

Доброго времени суток. Учусь на курсах автотестера. Программирование начал недавно только осваивать. Помогите разобраться:
Нужно проверить вводимое число на предмет -простое оно или нет. Простое, делиться только на самого себя и на один

x=int(raw_input(“press number:”))
i=2.000
while x>i:
if x%i!=0:
i=i+1
print “prostoe”
else:
print “ne prostoe”
break

логически я понимаю так, перебирал разные варианты, но нужного результата нет(((( В какую сторону копать? Направте плиз! Или хотябы логику скажите, как оно должно работать. Спасибо!



Отредактировано (Дек. 23, 2011 22:58:02)

Офлайн

#2 Дек. 23, 2011 23:33:21

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Определение простое число или нет

>>> def isProst(x):
... for i in (2,x-1):
... if not x%i:
... return False
... return True
>>> print isProst(4)
False
>>> print isProst(5)
True
>>> print isProst(7)
True
>>> print isProst(10)
False



Офлайн

#3 Дек. 24, 2011 03:41:01

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

Определение простое число или нет

>>> def isProst(x):
... for i in (2, x-1):
... if not x % i:
... return False
... return True
...
>>> isProst(2)
False
>>> isProst(3)
True
>>> isProst(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in isProst
ZeroDivisionError: integer division or modulo by zero
>>>
>>> isProst(121)
True
>>>



Офлайн

#4 Дек. 24, 2011 20:19:49

Randomazer
От:
Зарегистрирован: 2011-12-24
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Определение простое число или нет

def isProst(x):
if x==1:
return True
for i in range(2,x-1):
if not x%i:
return False
return True

print isProst(121)



Отредактировано (Дек. 24, 2011 20:21:37)

Офлайн

#5 Дек. 25, 2011 02:18:08

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Определение простое число или нет

Randomazer
for i in range(2,x-1):
Будет работать заметно быстрее, если этот цикл заменить на:
for i in range(3, int(math.sqrt(x)), 2):
А на четность числа проверить заранее.



Офлайн

#6 Дек. 26, 2011 18:41:24

bo-jutsu
От:
Зарегистрирован: 2011-12-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Определение простое число или нет

Большое всем спасибо, за помощь!



Офлайн

#7 Янв. 6, 2012 06:42:03

baa
От:
Зарегистрирован: 2011-11-25
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Определение простое число или нет

def Prm(x):
if x == 2:
return True
if x < 2 or x % 2 == 0:
return False
for i in xrange(3, int(x**0.5) + 1, 2):
if x % i == 0:
return False
return True
print Prm(x)



Отредактировано (Янв. 10, 2012 06:02:10)

Офлайн

#8 Янв. 7, 2012 07:18:01

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

Определение простое число или нет

baa
    if x < 2 or x % 2 == 0:
return False
2 - простое число



Офлайн

#9 Янв. 10, 2012 05:26:29

baa
От:
Зарегистрирован: 2011-11-25
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Определение простое число или нет

py.user.next
baa
    if x < 2 or x % 2 == 0:
return False
2 - простое число
поправился



Офлайн

#10 Янв. 10, 2012 07:43:21

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

Определение простое число или нет

def isprime(x):
if x > 3 and x % 2 == 0 or x <= 1:
return False
for i in range(3, int(x ** 0.5) + 1, 2):
if x % i == 0:
return False
return True

print(isprime(121))
пояснее немного

tags: prime



Отредактировано py.user.next (Окт. 27, 2017 10:49:01)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version