一、求两个正整数的最大公约数。
def function1(num1,num2):
g = []
for i in range(1,max(num1,num2)):
if num1 % i == 0 and num2 % i == 0:
g.append(i)
i+=1
return max(g)
a=int(input("输入一个正整数m:"))
b=int(input("输入一个正整数n:"))
print("%d和%d的最大公约数是:"%(a,b),function1(a,b))
二、找出1000以内的所有完数。
for i in range(2, 1000):
a=[]
for j in range(1,i):
if i%j==0:
a.append(j)
num=sum(a)
if num==i:
print(i)
三、找出n以内所有素数。
import math
n=int(input())
a=[]
print(2,end=' ')
for i in range(2,n+1):
if i%2==0:
continue
j=3
while True:
if j<=int(math.sqrt(i))+1:
if i%j==0:
break
else:
j+=2
else:
print(i,end=' ')
a.append(i)
break
四、求Fibonacci数列的前n项。要求每行输出4个数字。
n=int(input("输入数列项数:"))
a=1
b=0
print(a,end=" ")
for i in range(2,n+1):
c=a+b
if i%4!=0:
print(c,end=" ")
else:
print(c)
b=a
a=c
五、使用无穷级数4/1- 4/3+ 4/5- 4/7+…前n项和计算圆周率。
n=int(input("请输入项数:"))
pi=0.0
for i in range(1,n+1):
if i%2==0:
pi-=(1/((i*2)-1))
else:
pi+=(1/((i*2)-1))
sum=4*pi
print("PI=%s"%sum)
六、使用“牛顿迭代法”计算一个正数的平方根。要求输出将每一次循环计算的近似值。
提示:当相邻两个近似根误差小于1E-8时结束循环。
import math
a=int(input("输入一个正实数:"))
def sqrt(x):
y=x
y=(y+x/y)/2
i=1
while abs(y*y-x)>1e-8:
y=(y+x/y)/2
print(i,y)
i+=1
return i
print(sqrt(a),math.sqrt(a))
print("算术平方根为:%.1f"%math.sqrt(a))