当前位置: 移动技术网 > IT编程>脚本编程>Python > python第七周练习题

python第七周练习题

2020年04月15日  | 移动技术网IT编程  | 我要评论

陈若琳,diglog,北碚人力资源

首先,本人专注于java项目,力战c/c++算法,所以python的语法好多都不太了解,虽然会做题,但要翻阅好多python语法知识.所以更新比较慢,本人主要卡在不是结果上,而是对结果的格式化上,这真的是...难以形容.各位小伙伴如果有比较好的经验可以在评论区留言哦.


1.求最大素数(没啥好说的,直接暴力)

import math
n = int(input())
list=0
for i in range(2,n):
    a=0
    for k in range(2,10):
        if i%k==0:
            a=1
    if a==0:
       list=i
print(list)

2.分解质因数(本来c++昨天刚写过,今天换一种语言,我感觉写程序两种语言都搞混了,唉)

n = num = int(input())  #用num保留初始值
f = []  #存放质因数的列表
for j in range(int(num/2)+1):  #判断次数仅需该数字的一半多1次
    for i in range(2, n):
        t = n % i  #i不能是n本身
        if t == 0:  #若能整除
            f.append(i)  #则表示i是质因数
            n = n//i
            break
if len(f) == 0:  #若一个质因数也没有
    print('该数字没有任何质因数。')
else:  #若至少有一个质因数
    f.append(n)
    f.sort()  #排下序
    print(f)

3.n位水仙花数(老生常谈了)

n = int(input())
list2=[]
for i in range(10**(n-1),10**n):
  str1=str(i)
  sum1=0
  for j in str1:
    num=int(j)
    sum1+=num**n
  if i==sum1:
    list2.append(i)
for j in (list2):
    print(j)

4.判断闰年(重点是找到3个边界条件,没啥办法,记住就行)

year = int(input())
if (year % 4) == 0:
   if (year % 100) == 0:
       if (year % 400) == 0:
           print("true")   # 整百年能被400整除的是闰年
       else:
           print("false")
   else:
       print("true")       # 非整百年能被4整除的为闰年
else:
   print("false")

5.完数(这个格式化输出气煞我也,耗费20多分钟格式化)

k = int(input())
for i in range(2, 1000):
    if k:
        l1 = []
        for j in range(1,i):
            if i % j == 0:
                l1.append(j)
        num = sum(l1)
        if num == i:
            print ("%d="%i,sep='',end='')
            for i in range(len(l1)):
                if i == len(l1) - 1:
                    print ("%d"%l1[i],sep='',end='')
                else:
                    print ("%d+"%l1[i],sep='',end='')
            k = k-1
            print("")

6.自定义幂函数(半分钟)

def fun(x,n):
    sum = 1
    for i in range(n):
        sum *= x
    print(sum)
x,n = map(int,input().split())

fun(x,n)

7.累加函数(半分钟)

def mysum(n):
    sum = 0
    for i in range(1,n+1):
        sum += i
    print(sum)
n = int(input())
mysum(n)    

8.阶乘(1分钟)

def fun(n):
    sum = 1
    for i in range(1,n+1):
        sum *= i
    return sum
n = int(input())
result = 0
for i in range(1,n+1):
    result += fun(i)
print(result)

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网