初识python小练习02【while & 嵌套while】
# 1.求100以内的所有奇数之和
num = 1
sum = 0
while num <= 100:
sum = sum + num
print(sum)
num += 2 # 注意这里这一句要放在打印语句后面,否则num会算到101(因为99+2=101)
print("="*30) #分隔符 ,注意缩进的细节!!
=================
# 2.求100以内所有7的倍数之和,以及个数
i = 1 # 注意这里是从1开始的,因为0 % 7 ==0,但是0不算是7的倍数!!
n = 0 # 计数器
sum1= 0 # 总和
while i <= 100:
if i % 7 ==0:
n = n + 1
sum1 = sum1 + i
print(i,"是7的倍数")
i = i + 1
print("100之内7的倍数有", n, "个")
print(sum1)
print("="*30)
========================
# 3.水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身
# 如(1**3+5**3+3**3=153),求1000以内的所有水仙花数
m = 100 #最小的三位数,因为大目标是三位数,所以从最小的三位数开始着手
while m < 1000:
#判断是不是水仙花数 :它的每个位上的数字的n次幂之和等于它本身
a = m // 100 # a 是百位上的数值,m // 100表示整除(例如101 // 100 = 1,那么百位上的就是数值1)
b = (m - a * 100) // 10 # b是十位上的数值,(m - a * 100) // 10 ==》例如123 - 1*100=23,23 // 10 = 2
c = m % 10 # c 是 个位数, m % 10==》例如123 % 10 =3
if a ** 3 + b ** 3 + c ** 3 == m:
print(m,"是水仙花数")
m += 1
print("="*30)
==========================
# 4.获取用户输入的任意数,判断其是否是质数
# 质数就是只能被1和它本身整除的数,1不是质数!!
number = int(input("input the number:")) # 接收用户输入的值
i = 2 # 如果是判断数字9是不是质数,就要看它能不能被2,3,4,5,6,7,8这几个数整除(不用考虑1,所以直接从2开始!)
flag = True # 该变量用来保存值,表示是不是质数。默认情况下我们假定是质数
while i < number:
# 注意:能被i(通过前面我们已经知道i不是1,也不是它自己,是2~number-1)整除的说明一定不是质数,
# 但是!如果是number不能被i整除,那不一定说明number就是质数。比方说9 % 2 !=0,可是9不是质数!
# 即必须在number % 所有的i都不能为0时,才能说明number是质数
# 因为有点复杂,所以我们用反向思维来做,也就是说当number % i == 0时(哪怕只是一个i能被整除),那就可以证明number不是质数了!
if number % i == 0:
flag = False
i = i + 1
if flag == True:
print(number,"是质数")
else:
print(number,"不是质数")
================================
# 1.打印99乘法表
i = 0
while i < 9:
i += 1
j = 0
while j < i:
j += 1
# print(j, "*", i,"=", i*j, end=" ") #方法一
print(f"{j}*{i}={i*j} ",end="") # 方法二
print()
print("="*30)
=================================
# 2.求100以内所有的质数
n = 2 # 1 不是质数,所以从2开始
while n <= 100:
flag = True # 用flag这个变量来存放值,表示是否是质数,默认情况下是质数
m = 2 # 将n和数从2~(n-1)之间的任何一个数做取模,如果能整除,说明不是质数
while m < n:
if n % m == 0:
flag = False
m += 1 # 记得加上这句,不然陷入死循环
if flag:
print(n)
n += 1