虽然网络课程很多,但是在家学习效率极低,蹭学妹的网课还能蹭作业,还能有人监督,真好。
第一节课老师很认真的分享了他的成长、求学、求职过程,然后留了一个python的小作业:输入两个数,输出他们之间所有质数和总共多少质数。
我的代码,感觉我写的很麻烦`
import math
a = int(input ("输入第一个数:"));
b = int(input ("输入第二个数:"));
print("找出两数之间的所有质数");
count=0;
if (a>b and b!=1): #考虑边界条件并且边界不为1
a,b=b,a#python 中可以直接交换
for i in range(a,b+1):
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
break
else:
count=count+1;
print("第%d个质数为%d"% (count, i));
elif (a<b and a==1):#考虑a=1的情况
for i in range(2,b+1):
for j in range(2,int(math.sqrt(i))+1):#质数算法原理
if i%j == 0:
break
else:
count=count+1;
print("第%d个质数为%d"% (count, i));
elif (a>b and b==1):#考虑b=1的情况
a,b=b,a
for i in range(2,b+1):
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
break
else:
count=count+1;
print("第%d个质数为%d"% (count, i));
else:
for i in range(a,b+1):
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
break
else:
count=count+1;
print("第%d个质数为%d"% (count, i));
print("%d和%d之间的质数总共有%d个"% (a,b,count));
学妹给了老师的主旨思想,写下来确实比我自己的好很多
a = int(input ("输入第一个数:"));
b = int(input ("输入第二个数:"));
print("找出两数之间的所有质数");
count=0;
if a>b:
a,b=b,a
for i in range(a,b+1):
check=1#认为此数是质数
for j in range(2,i):
if i%j==0:
check=0#认为此数不是质数
break
if (i>=2 and check==1):
count=count+1;
print("第%d个质数为%d"% (count, i))
else:
for i in range(a,b+1):
check=1#认为此数是质数
for j in range(2,i):
if i%j==0:
check=0#认为此数不是质数
break
if (i>=2 and check==1):
count=count+1;
print("第%d个质数为%d"% (count, i))