Python练习题答案: 简单有趣#143:是幸存者号码?【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战

mac2026-04-02  5

简单有趣#143:是幸存者号码?【难度:2级】:

答案1:

def survivor(n): k = 2 while n >= k and n % k: n -= n // k k += 1 return n % k > 0

答案2:

xs = list(range(1, 10**8+1, 2)) i = 3 while i <= len(xs): del xs[i-1::i] i += 1 survivor = set(xs).__contains__​

答案3:

def survivor(n): i=2 while i<=n: if n%i==0:return False n-=n//i i+=1 return True

答案4:

def survivor(n): print("look for %s"%n) #coding and coding.. last=0 for i in range(2,n): if last==n: return True print(n) if n%i == 0: return False else: last = n n=n-n//i return True

答案5:

def survivor(m): i = 2 while i <= m: q, r = divmod(m, i) if r == 0: return False m, i = m - q, i + 1 return True

答案6:

def survivor(n): factor = 2 while True: if n % factor == 0: return False if factor > n: return True n -= n // factor factor += 1

答案7:

from itertools import count S = list(range(1,100000001)) for d in count(2): if d >= len(S): break del S[d-1::d] S = set(S) def survivor(n): return n in S ​

答案8:

def survivor(n): #coding and coding.. c=n if c==1:return True print(c) i=2 while(i<=c+1): if c%i==0:return False c=c-(c//i) i+=1 return True

景越Python基础训练营QQ群

欢迎各位同学加群讨论,一起学习,共同成长!

最新回复(0)