有一组正整数,要求仅对其中的素数进行升序排序。排序后素数在前,非素数在后。排序示例如下。 排序前: 86 71 5 41 81 79 37 89 排序后: 5 37 41 71 79 89 86 81
def isprime(x):
if x<2:
return False
for i in range(2,x):
if x%i==0:
_____(1)_____ #①
return True
a = list(map(int,input().split()))
n = len(a)
for i in range(n-1):
k = i
if isprime(a[i]):
flag = True
else:
flag = False
for j in range(i+1,n):
if isprime(a[j]):
if _____(2)_____ : #②
k = j; flag = True
if k!=i:
a[k],a[i] = a[i],a[k]
if _____(3)_____ : #③
break
代码如下:
(1)return False
(2)not flag or flag and a[j]<a[k]
(3)not flag
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com