[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想让我用点新技能.比如 map() 之类的?可是我想了半天还是没想出来啊!只好还是用土办法.代码如下: p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始 for j in range(2, i)
def prime(num): for i in range(2, num): if num % i == 0: # 能被1之外的任意个数整除的即为非素数,返回False,将被filter函数过滤掉 return False return True print'prime: ', filter(prime, range(2, 101)) # filter(func,seq)返回seq作用于func之后为True的数
不管是while循环还是for循环,原理都是取根号,循环到取根号后的数,至于为什么需要循环到开根后的数,我想主要是因为一个数的分解因子在开根号后的数向上取整以下吧. 话不多说,上代码: while循环: while循环原理如下: i = 2 while i <= 100: # 内层循环 j 从2循环到根号 i j = 2 while j <= (i / j): # j <= (i/j) 等效于 j*j <= i 也就等于 j <= 根号 i if i % j == 0: br
num = 100 while num <= 999: a = num % 10 #取个位数 b = num // 10 % 10 #取十位数 c = num // 100 #取百位数 if num == a**3 + b**3 + c**3: print (num) num += 1 #python不支持 num++ 之类的写法
import random from random import choice ops = ('+','-','×','÷') ans = [] i=0 while i < 100 : op1 = choice(ops) op2 = choice(ops) n = random.randint(1,9) if op1 == '+' and op2 == '+' : a = random.randint(0,100) b = random.randint(0,100-a) c = random.r
def func(): for i in range(2,1000): # count表示被整除的次数 count = 0 for j in range(1,i+1): if i%j==0: count+=1 # count==2说明,该数字只能被1和它本身整除 if count==2: if i==j: print(i) func()
四位玫瑰数 描述 四位玫瑰数是4位数的自幂数.自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身.