Вам нужно проверить все числа от 2 до n-1 (до sqrt (n) на самом деле, но нормально, пусть это будет n). Если n
делится на любое из чисел, оно не является простым. Если число является простым, распечатайте его.
for num in range(2,101):
prime = True
for i in range(2,num):
if (num%i==0):
prime = False
if prime:
print num
Вы можете написать то же намного короче и больше pythonic:
for num in range(2,101):
if all(num%i!=0 for i in range(2,num)):
print num
Как я уже сказал, было бы лучше проверить делители не от 2 до n -1, но от 2 до sqrt (n):
import math
for num in range(2,101):
if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
print num
Для небольших чисел, таких как 101, это не имеет значения, но для 10 ** 8 разница будет действительно большой.
Вы можете улучшить его немного больше, увеличивая диапазон, который вы проверяете на 2, и тем самым проверяете нечетные числа. Так же:
import math
print 2
for num in range(3,101,2):
if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
print num
Отредактировано:
Как и в первом цикле, выбраны нечетные числа, во втором цикле нет необходимости проверять четными числами, поэтому 'i 'может начинаться с 3 и пропускаться на 2.
blockquote>import math print 2 for num in range(3,101,2): if all(num%i!=0 for i in range(3,int(math.sqrt(num))+1, 2)): print num
Jython не компилируется в «чистый java», он компилируется в java bytecode - то есть в *.class
файлы. Для разработки для Android еще один компилятор java-байт-кода для байт-кода Dalvik. Это означает, что да, Jython может позволить вам использовать Python для разработки Android, при условии, что вы получите его, чтобы хорошо играть с Android SDK (я лично этого не пробовал, поэтому не знаю насколько это тяжело) - вы do должны убедиться, что вы не зависите от каких-либо Java-API, которые Android не предоставляет, и может иметь некоторые из файлы API Android .class
, когда вы запускаете jython. Помимо этих ошибок, ваша основная идея должна работать - Jython действительно позволяет писать код на Python, который взаимодействует с чем-либо еще, что работает на JVM.
Это невозможно. Вы не можете использовать jython с Android, потому что DVM не понимает этого. DVM не является JVM.
Сценарий Scripting Layer для Android (SL4A) предоставляет языки программирования на Android, позволяя вам редактировать и выполнять скрипты и интерактивные интерпретаторы непосредственно на устройстве Android.
Пока он компилируется в чистую java (с некоторыми ограничениями, поскольку некоторые API-интерфейсы недоступны), но я сомневаюсь, что python будет очень полезен в разработке специфичных для Android элементов, таких как действия и код манипулирования пользовательским интерфейсом.
Вы также должны позаботиться о размере приложения - это серьезное ограничение для мобильного развития.
Да и нет. С jython вы можете использовать классы java для компиляции для JVM. Но Android использует DVM (Dalvik Virtual Machine), а скомпилированный код отличается. Вы должны использовать инструменты для преобразования из JVM-кода в DVM.
печально Нет.
Мобильные телефоны имеют только Java ME (Micro Edition), но Jython требует Java SE (стандартная версия). Для JETON-порта нет ME, и нет достаточного интереса, чтобы сделать это стоящим.