6、条件控制语句练习

条件控制语句练习

判断是否为水仙花数

水仙花素说明:该数每个数位上数字的幂(幂为该数的位数),等于该数自身大小
 n=input('请输入一个正整数:')
 k=len(n.strip())
 m=k
 sum=0
 try:
     n=int(n)
     n1=n
  while True:
          #m相当于index的功能,n1为余数,刚开始余数为输入的数
          sum+=(n1//(10**(m-1)))**k
          #更新余数
          n1=(n1%(10**(m-1)))
          #m为最后一位的时候break
          if (m==1):
              break
          m-=1
     if sum==n:
          print('f{n}为水仙花数')
     else:
  print('f{n}不是水仙花数')
 except ValueError:
  print('输入错误,非正整数')
```python
在这里插入代码片
`

判断是否为质数

质数说明:只能被1或本身整除的数为质数
n=input('请输入一个正数:')
flag=True
try:
    n=int(n)
    i=2
    while i<n:
        if n%i==0:
            flag=False
            break
        i+=1
    if flag:
        print(f'{n}是质数')
    else:
        print(f'{n}不是质数')
except ValueError:
    print('输入错误,非正整数')

99乘法表

n=1
while n<10:
    m = 1
    while m<n+1:
        print(f'{m}*{n}={n*m}',end=' ')
        m+=1
    print()
    n+=1

输入一个数,显示1-该数内存在几个质数

from time import *
n=input('请输入一个正整数:')
start_time=time()
i=2
mun=[]
sum=0
try:
    n=int(n)
    while i<n+1:
        k=2
        flag = True
        #将i的值进行优化,使i开根,缩小遍历K的范围,从而减小代码工作量
        #列:97**0.5 无需由i%range(2,97)之间的值,而是i%range(2,10),因为当数大于10时,没法开方,就说明已排除部分非质数,而此数只需做2-9计算即可
        while k<i**0.5:
            if i%k==0:
                flag=False
                break
            k+=1
        if flag:
            sum+=1
            mun.append(i)
        i+=1
    end_time = time()
    print(f'所有的质数有{mun},',f'共{sum}个',sep='\n')
    print(f'所用时间{end_time-start_time}')
except ValueError:
    print('输入错误,非正整数')

猜你喜欢

转载自blog.csdn.net/qq_37697566/article/details/101519413