简单有趣#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
)
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
):
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群
欢迎各位同学加群讨论,一起学习,共同成长!
转载请注明原文地址: https://mac.8miu.com/read-512773.html