首先,本人专注于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)