Форум сайта python.su
Доброго времени суток. Учусь на курсах автотестера. Программирование начал недавно только осваивать. Помогите разобраться:
Нужно проверить вводимое число на предмет -простое оно или нет. Простое, делиться только на самого себя и на один
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)
Офлайн
>>> 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
Офлайн
>>> 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
>>>
Офлайн
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)
Офлайн
RandomazerБудет работать заметно быстрее, если этот цикл заменить на:
for i in range(2,x-1):
for i in range(3, int(math.sqrt(x)), 2):
Офлайн
Большое всем спасибо, за помощь!
Офлайн
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)
Офлайн
baa2 - простое числоif x < 2 or x % 2 == 0:
return False
Офлайн
py.user.nextпоправилсяbaa2 - простое числоif x < 2 or x % 2 == 0:
return False
Офлайн
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))
Отредактировано py.user.next (Окт. 27, 2017 10:49:01)
Офлайн