当前位置:   article > 正文

Python 函数定义与使用练习题_python编写一个函数来检测一个给定的数是否是素数

python编写一个函数来检测一个给定的数是否是素数

第一题:

编写函数,判断一个数是否为素数?并求出所有四位数的素数

import math
def sushu(m):
    k = int(math.sqrt(m))
    for i in range(2, k+2):
        if m % i == 0:
            break
    if i == k+1:
        return True
    else:
        return False

a=int(input('请输入一个数:'))
if a==1:
    print('1既不是质数也不是合数')
else:
    if sushu(a)==True:
        print(a,'是素食')
    else:
        print(a,'是合数')

print('四位数素数为:')
n=0
for i in range(1001,10000,2):
    if sushu(i)==True:
        if n%30==0:
            print()
        print(i,end=' ')
        n=n+1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

第二题

在屏幕上输出 m 行 n 列的由某种符号构成的空心矩形

def dyjz(m,n,a):
    for i in range(1,m+1):
            if i==1 or i==m:
                print(a*n)
            else:
                print(a+' '*int((n-2))+a)

m= int (input("输入打印行数:"))
n= int (input("输入打印列数:"))
a= str (input("要打印的字符:"))
dyjz(m,n,a)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第三题

生成一个随机小数6*6的矩阵,按第一列升序、第四列降序排序

import random

r=[]
print('原始矩阵')
for i in range(6):
     s=[]
     for j in range(6):
         s.append(round(random.uniform(1,10),2))
     r.append(s)
for i in r:
   print(i)

print('排序后矩阵')
r_new=sorted(r,key=lambda x:[x[0],-x[3]])
for i in r_new:
   print(i)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

相关课后习题使用代码

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

2.编写一个函数,求满足以下条件的最大的n值:
第二题图
3.编写一个函数multi(),参数个数不限,返回所有参数的乘积。

4.编写一个函数,功能是求两个正整数m和n的最大公约数

5.编写一个函数,调用该函数能够打印一个由指定字符组成的n行金字塔。其中,指定打印的字符和行数n分别由两个形参表示。

6. 十 进制转二进制

7。 回文字符串

参考代码


print('-----------第1题-----------')

import math
def sushu(m):
    k = int(math.sqrt(m))
    for i in range(2, k+2):
        if m % i == 0:
            break
    if i == k+1:
        return True
    else:
        return False

n=0
for i in range(101,1000,2):
    if sushu(i)==True:
        if n%10==0:
            print()
        print(i,end=' ')
        n=n+1

print('\n-----------第2题-----------')

def Maxn():
   sum=0
   n=0
   while sum<1000:
      n=n+1
      sum=sum+n*n
   return n-1

print('满足条件的最大n值为:',Maxn())


print('-----------第3题-----------')

def multi():
        str=input("输入要计算的参数:")
        c=1
        for item in str.split():
            c=c*int(item)
        print('所输入参数的乘积为:',c)

multi()


'''
本部分为批注

def multi():
    try:
        str=input("输入要计算的参数,用空格隔开")
        c=1
        for item in str.split():
        #通过for循环可根据特定符号简洁分割字符串,split()无参默认根据空格切割
            c=c*int(item)#切割出来的是字符串,需强转成int型,便于运算
        print(c)
    except:
        print("error")

multi()


def multi(*num):
   sum=1    
   for i in num :       
      sum=sum*i     
   return sum

print(multi(2,3,4))



def revser(s):
   return s[::-1]   
print ('请输入字符串:',end='')
m=input()
print(revser(m))

'''


print('-----------第4题-----------')

def gys(m, n):
   if m < n:
      m, n = n, m 
   while n != 0:
      temp = m % n
      m = n
      n = temp
   return m

a=int(input('请输入m:'))
b=int(input('请输入n:'))
print('m和n的最大公约数是:',gys(a,b))

print('-----------第5题-----------')

def jzt(m,n):
    for i in range(1,n):
        print(' '*(20-(i-1)),m*(2*i-1))

a= int (input("输入打印行数:"))
b= str (input("要打印的字符:"))
jzt(b,a+1)


print('-----------第6题-----------')

def trans(m):
    print(bin(m))
#本题直接调用的内置函数
#或使用下列方法:
'''
def trans(n):
    list = []
    while n//2 != 0:
        list.append(n%2)
        n = n // 2
        if n//2 == 0:
            list.append(n%2)
            break
    list.reverse()
    for t in list:
        print(t,end='')
    print()

#主函数
trans(int(input("请输入一个数:")))

'''
 
a=int (input("需要转换的十进制数为:"))
trans(a)



print('-----------第7题-----------')

def huiwen(e):
    x=0
    y=len(e)-1
    while x<y:
        if(e[x] != e[y]):
            break
        x+=1
        y-=1
    if(x<y):
        flag=0
    else:
        flag=1
    return flag

e=input("请输入一串字符:")
if(huiwen(e)):
    print("这是回文字符串\n")
else:
    print("这不是回文字符串\n")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/593335
推荐阅读
相关标签
  

闽ICP备14008679号