mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
68 字
1 分钟
【课外拓展题】函数运用
2025-11-26

第1关:天数计算#

########## Begin ##########
def feb(y):
if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:
return 29
else:
return 28
def dayOfYear(y,m,d):
days = 0
for i in range(1,m):
if i == 2:
days += feb(y)
else:
if i in [1,3,5,7,8,10,12]:
days += 31
else:
days += 30
days += d
return days
########## End ##########
y = int(input()) #年
m = int(input()) #月
d = int(input()) #日
day = dayOfYear(y,m,d)
print('%d%d%d日是这年第%d天' % (y,m,d,day))

第2关:打印圣诞树#

########## Begin ##########
for i in range(1,6):
print(" "*(9-i),"*"*(2*i-1)," "*(9-i))
for i in range(1,8):
print(" "*(9-i),"*"*(2*i-1)," "*(9-i))
for i in range(1,10):
print(" "*(9-i),"*"*(2*i-1)," "*(9-i))
print("*"*19)
i = 1
while i<=6:
print(" "*7,"*"*3," "*7)
i += 1
########## End ##########

第3关:矩阵乘法(我也不会)#

这是抄的

########## Begin ##########
def create_zero_matrix(rows, cols):
return [[0 for _ in range(cols)] for _ in range(rows)]
def calculate_element(A, B, i, j):
sum_val = 0
for k in range(len(A[0])):
sum_val += A[i][k] * B[k][j]
return sum_val
def calculate_all_elements(A, B):
rows_A = len(A)
cols_B = len(B[0])
result = create_zero_matrix(rows_A, cols_B)
for i in range(rows_A):
for j in range(cols_B):
result[i][j] = calculate_element(A, B, i, j)
return result
def multiply(A, B):
if not A or not B or not A[0] or not B[0]:
return []
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
return calculate_all_elements(A, B)
########## End ##########
import myMatrix
num1 = int(input())
num2 = int(input())
A = myMatrix.getMatrix(num1)
print('A=')
myMatrix.printMatrix(A)
B = myMatrix.getMatrix(num2)
print('\nB=')
myMatrix.printMatrix(B)
C=multiply(A, B)
print('\nC=AxB=')
myMatrix.printMatrix(C)

第4关:验证哥德巴赫猜想#

########## Begin ##########
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def Goldbach(N):
for N1 in range(2, N):
N2 = N - N1
if N1 > N2:
break
if is_prime(N1) and is_prime(N2):
return N1, N2
########## End ##########
N=int(input(''))
N1,N2 = Goldbach(N)
print('%d = %d + %d' % (N, N1, N2))

第5关:实现欧拉函数#

########## Begin ##########
def Gcd(x,y):
if x%y==0:
return y
return Gcd(y,x%y)
def Phi(x):
mdl = 0
for i in range(1,x+1):
if Gcd(x,i)==1:
mdl += 1
return mdl
########## End ##########
x = int(input())
print(Phi(x))

第6关:推翻欧拉的猜想#

def f(x): # 定义欧拉素数函数f(x)
return x * x + x + 41
def is_prime(x): # 定义判断素数函数is_prime(x)
if x == 2 :
return True
for i in range(2,x):
if x % i == 0:
return False
return True
def mindiv(x): # 定义求最小因子函数mindiv(x)
for i in range(2,x):
if x % i == 0:
return i,x/i
return 1,x
i=1
while is_prime(f(i)): # 循环判断欧拉素数是否为素数
print('f(%d)=%d是素数'%(i,f(i)))
i = i+1
x,y = mindiv(f(i)) # 求欧拉素数的最小因子
print('f(%d)=%d=%d*%d不是素数'%(i,f(i),x,y))
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

【课外拓展题】函数运用
https://blog.sherry.qzz.io/posts/python/1126fx/
作者
Sherry
发布于
2025-11-26
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录