蛇形填数
i,j,sum = 0,0,0
while True:
sum+=1
if i==19 and j==19:
break
if (i+j)%2==0:
i+=1
if j>0:
j-=1
else:
j+=1
if i>0:
i-=1
print(sum)
一、从0开始所以,i,j=19结束
还有注意开头i,j,sum都要对应复制
二、ij坐标相加是奇数,←↓走势,
ij坐标相加是偶数,→↑走势。
关于正约数、质数
质数,也称素数,即只能被1和它本身整除的正整数.如2,3,5,7等,2是唯一的偶数质数.
合数正与之相反,除1和它本身之外,至少还有1个数能够整除它.如4,9,12等.
如果一个数能整除另一个数,则这个数称为另一个数的约数,也可以说是它的因数.
思路分析:
质数-唯一分解公式:
质数有2、3、5、7、11、13······
比如18=2* 3 *3(p1=2,a1=1;p2=3,a2=2)
约数个数=(a1+1)(a2+1)=(1+1)(2+1)=6 (分别是:1,2,3,6,9,18)
#1.创建1~100的质数集
def prime(x):
for i in range(2,int(x**0.5)+1):
if x%i==0:
return False
return True
zhishu=[]
for i in range(2,101):
if prime(i)==True:
zhishu.append(i)
#zhishu=[2,3,5,7,11···,97]
#2.计算约数个数
p=[0]*101 #创建计数数组
for num in range(1,101): #遍历1~100
x=num #当前变量赋值
for i in zhishu: #遍历质数数组
while x%i==0: #判断约数
p[i]+=1 #对应计数+1
x//=i #循环条件
#p=[0, 0, 97···0,0]
#3.遍历结果
ans=1
for i in range(1,101): #遍历1~100
if p[i]!=0: #计数数组不为0
ans*=(p[i]+1) #根据公式累乘
print(ans) #39001250856960000