#求阶乘
def ff(n):
jc=1
for i in range(1, n+1):
# print(str(i)+'das')
jc = i * jc
return jc
#求两数最大公约数
def gys(n1, n2):
i=2
A = []
B =max(n1,n2)
while i< B :
if n1 % i == 0 and n2 % i == 0:
A.append(i)
i+=1
print(max(A))
print(min(A))
gys(6,9)
#计算100-300内的质数,并统计个数
def zs():
B= []
m=0
for i in range(100, 301):
fm = 1 # 每个i都要复位一下判断符fm
for j in range(2,i):
if i%j==0:
fm += 1
if fm == 1:
B.append(i)
m += 1
print(B)
print(m)
zs()
#利用冒泡进行排序
def mp(A):
for i in range(len(A)-1):
for j in range(len(A)-i-1):
if A[j] > A[j+1]:
A[j+1], A[j] = A[j], A[j+1]
return A
print(mp([1104,2,8587,744,415,10]))
#选择排序
def xz(A):
for i in range(len(A)-1):
for j in range(len(A)-i):
if A[j] == max(A[:(len(A)-i)]):
A[len(A)-1-i], A[j] = A[j], A[len(A)-1-i]
return(A)
B=[114,2,8587,744,415,10]
if B[2] == max(B[:len(B)-2]):
print(B[:len(B)-2])
print(max(B[:len(B)-2]))
A = [114, 2, 8587, 744, 8587,415, 8587, 10]
print(xz(A))
#插入排序 …
def cr(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
# 左移两位
# arr =[114,2,8587,744,8587,415,10]
# print(arr)
# arr[:] = arr[2:] + arr[:2]
# print(arr)
#有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
def sz():
m=0
for i in range(1,