Python全栈工程师

6.3-阶乘和求质数

2019-08-07  本文已影响5人  BeautifulSoulpy

坚其志,苦其心,勤其力,事无大小,必有所成。


练习2:求100/n内所有奇数的和(2500)

#思路1:常规思路
s=0
for i in range(0,100,1):  #先求和
    if i%2 == 1:    #控制奇数、偶数
        s += i
print(s)

#思路2:去掉取余除法;利用&运算符号;
s=0
for i in range(1,101):  #先求和
    if i & 1:    #控制奇数、偶数
        s += i
print(s)

#思路3:利用步长
s=0
for i in range(1,100,2):  #从1开始,步长为2;
        s += i
        print(i)
print(s)
----------------------------------------------
2500

练习3:判断学生成绩,成绩等级A-E.其中,90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E;

score=int(input('>>>'))

print('该同学的成绩为'+str(score))
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 70:
    print('C')
elif score >= 60:
    print('D')
else:
    print('E')
--------------------------------------------------------------------
>>>45
该同学的成绩为45
E

练习4:求1-5/n阶乘之和;

#思路1:先计算阶乘,再计算求和;
val=int(input('>>>'))

number=0
for j in range(1,val+1):
    s=1
    for i in range(1,j+1):
        s*=i   
    number+=s
print(str(val)+'的阶乘之和为'+str(number))

#思路2:一次计算所有的和,利用每次累加的结果
s = 0
value=1
for i in range(1,5):
    value *= i
    s += value
print("sum:",s)
---------------------------------------------------------
>>>4
4的阶乘之和为33

练习5:给定一个数,判断它是否为质数;(质数定义:一个大于1的自然数只能被1和它本身整除)

#思路1:直接根据定义来写;
number=int(input('>>>'))

l=0
for i in range(1,number+1):
    if number>i>1:
        num=number%i
        if num!= 0:
            l+=1
if l==(number-2):
    print(str(number)+'是一个质数!')
else:
    print(str(number)+'不是一个质数!')
    
思路2:有整除就不算,全部没有整除就算质数
x = int(input('>>>'))
for i in range(2,x):    #优化的点
    if x % i == 0:
        print(x,'is not a prime number!')
        break
else:
    print(x,'is a prime number!')
    
#思路3:减少计算的次数

上一篇 下一篇

猜你喜欢

热点阅读