初识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
posted @ 2020-09-28 13:05  L小龙虾  阅读(286)  评论(0编辑  收藏  举报