1、
# 九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
sum = i * j
s = str(j) + "*" + str(i) + "=" + str(sum)
print(s, end=',') # end代表不换行,用特殊字符连接下一字符
print()
#九九乘法表倒显
for i in range(1, 10):
s = ""
for j in range(i, 10):
sum = i * j
s += str(i) + "*" + str(j) + "=" + str(sum)+" "
print("{:>60}".format(s))#右对齐
# 打印菱形
a = int(input(">>>"))
if not a % 2:
a += 1
e = -(a // 2)
for i in range(e, a+e):
print(abs(i) * " " + (a - 2 * abs(i)) * "*")
# 打印闪电
e = -(7 // 2)
for i in range(e, abs(e) + 1):
if i > 0:
print(" " * 3 + (4 - i) * "*")
elif i < 0:
print(abs(i) * " " + (4 + i) * "*")
else:
print(7 * "*")
# 求1到5 的阶乘
sum =1
for i in range(1,6):
sum = sum + i*sum
print(sum)
# 求偶数
质数:一个数只能被1和他本身整除
while True:
c = int(input(">>>:"))
s = []
count = 0
for i in range(2, c):
if c % i == 0:
s.append(i)
count += 1
if count > 0:
print("是偶数,且能被{}整除".format(s))
else:
print("质数")
求十万以内的所有素数(考效率)
# 求十万以内的所有素数(考效率)
#方法一:
import datetime
num = int(input(">>>"))
start = datetime.datetime.now()
strs = ""
count = 0
for i in range(3, num, 2):
if (i > 10 and i % 10 == 5):
continue
else:
for c in range(2, int(i ** 0.5) + 1): # 2,开方+1
if i % c == 0:
break
else:
strs += str(i) + ","
count += 1
end = datetime.datetime.now()
time = (end - start).total_seconds()
print(strs)
print("一共有:" + str(count) + "个,所用time:" + str(time))
#方法二:一个合数一定可以分解成几个素数的乘积,也就是说一个数如果能被一个素数整除就是合数
lst = [2]
for n in range(3, 100000):
for i in lst:
if n % i == 0:
break
else:
lst.append(n)
print(lst)
# 方法三:
import datetime
import math
n = 100000
pn = []
count = 0
flag = False
start = datetime.datetime.now()
for i in range(2, n):
for j in pn:
count += 1
if i % j == 0:
flag = True # 偶数
break
if j >= math.sqrt(i):
flag = False # 质数
break
if not flag:
pn.append(i)
end = (datetime.datetime.now() - start).total_seconds()
print(len(pn))
print(count)
print(end)
# 猴子吃桃:第一天是吃掉了一半+1个,以此类推,每天都吃掉前一天剩下的一半+1个,直至第10天发现只剩了1个
# 第1天:剩下x/2-1
# 第2天:剩下d1/2-1
# ...,依次类推
# 第10天,剩下1
x = 1
for i in range(9, 0, -1):
x = (x + 1) * 2
print("第" + str(i) + "天剩余:" + str(x))
# 显示杨辉三角前6行
# 第n行有n项,n是正整数
# 第n行数字之和为2(n-1)
#方法一:
triangle = [[1], [1, 1]]
n = 6
for i in range(2, n):
pre = triangle[i - 1]
cur = [1]
for j in range(0, i - 1):
cur.append(pre[j] + pre[j + 1])
cur.append(1)
triangle.append(cur)
print(triangle)
# 方法二:每行都用一个list存储
upTriangle = [1, 1]
print([1])
print(upTriangle)
for i in range(2, 6):
curTriangle = [1]
for j in range(0, i - 1):
curTriangle.append(upTriangle[j] + upTriangle[j + 1])
curTriangle.append(1)
print(curTriangle)
upTriangle = curTriangle
# 方法三:首尾两端都加0
# triangle = [0, 1, 0]
upTriangle = [0, 1, 0]
for i in range(0, 6):
cur = [0]
for j in range(len(upTriangle) - 1):
cur.append(upTriangle[j] + upTriangle[j + 1])
cur.append(0)
upTriangle = cur
print(tuple(upTriangle[1:-1])) # 不显示头尾两端的0