1、用generator
2、for i in range(start,end,jump)中jump不能为float类型。如何解决这个问题
3、用generator打印前n个素数与这n个素数的和sum,使得sum是大于10000的最小的数
import decimal
def is_prime(number):
for i in range(2,int(number/2)+1):
if number%i ==0 :
return False
return True
# this is the way to ###for i in range(i) where i can be float type###
def frange(start, end, jump):
while(start<end):
yield start
start+=jump
for i in list(frange(0,10,decimal.Decimal("0.1"))):
print(i)
def get_primes(nums):
while True:
if is_prime(nums):
yield nums
nums+=1
def solve_number_10():
total = 2
for next_prime in get_primes(3):
if total<10000:
total += next_prime
print(next_prime)
else:
print(total)
return
print(solve_number_10())
使用decimal为了避免出现9.90000000001的情况