python(C)作业6 P110 2,4,12

1

编写一个函数判断一个数是否为素数,并通过调用该函数求出所有三位数的素数。

python(C)作业6 P110 2,4,12_第1张图片

 代码:

import math     #导入math函数库
def panduan(num):   #自定义函数panduan()
    if num == 1:    #如果这个数为1,反之继续往下执行
        return True #则返回此数为素数,
    T = math.sqrt(num)  #T为这个数开根,T可能为浮点数
    for i in range(2, int(T + 1)):  #循环从2--(T+1)
        if num % i == 0:    #如果此数除以i为0
            return False    #则此数不是素数
    else:
        return True     #反之返回为素数
j = int(input('请输入一个数:'))   #输入一个数
print(panduan(j))   #判断是否为素数

k = []      #定义一个空列表来装三位数的素数
for s in range(100,1000):   #循环100-999的数
    if panduan(s) == True:  #判断是否为素数
        k.append(s)         #若是素数增加到k列表
print(k)    #输出k列表

2

编写一个函数multi(),参数个数不限,返回所有参数的乘积。

python(C)作业6 P110 2,4,12_第2张图片

 

代码:

def multi(*p):  #自定义函数,*p为不确定有多少输入值
    i = 1
    for j in p:
        i *= j
    return i
print(multi(8,9,6)) #可自己改multi()中的值

3

编写一个函数,功能是求两个正整数m和n的最小公倍数。

python(C)作业6 P110 2,4,12_第3张图片

代码:

 

def gys(a,b):   #自定义函数
    if a>b:     #如果输入的第一个数大于第二个数
        f1 = b  #将第一个数赋值给f1
    else:
        f1 = a  #反之将第二个数赋值给f1
    for n in range(1,f1+1): #循环1-f1,n为1-f1中的一个数
        if((a % n == 0) and (b % n == 0)):  #判断当某个值能被a,b同时整除
            m = n   #将这个值赋值给m
    return m    #返回m值
i = int(input('请输入第一个数:'))
j = int(input('请输入第二个数:'))
print('最小公倍数为:')
print((i*j)//gys(i,j))  #最小公倍数公式

你可能感兴趣的:(Python,python)