Akihisa
发表于 2018-8-16 00:06:32
for i in range(101,201):
for j in range(2,i//2):
if i % j == 0:
break
else:
print(i,end =' ')
songmenghua
发表于 2018-8-18 23:34:43
import math as m
n = 0
L = []
for i in range(101,201):
for a in range(2,int(m.sqrt(i)) + 1):
if i % a != 0:
s = 0
else:
s = -1
break
if s == 0:
n += 1
L.append(i)
print('共有%d个素数'%n)
print L
一步半个脚印
发表于 2018-8-22 21:58:08
好累,做的题不符合题目,但是训练的目的也是达到了,数学不好,编程好累。。。。。。
第一个,输入某个数字判断该数字是否为质数:
from math import sqrt
import sys
n=int(input("Please input number:"))
if n ==1:
print(n,'is definitely not sushu')
sys.exit(0)
for i in range(2,int(sqrt(n))+1):
if n%i==0 :
print(n,'is not sushu')
sys.exit(0)
print(n,'is sushu')
第二题:输出某个数字内的所有质数:
from math import sqrt
import sys
Temp_list=[]
n=int(input("Please input number:"))
if n ==1:print('Nothing')
for i in range(2,n+1):
Temp_list.append(i)
print(Temp_list)
for x in range(0, n-1):
for k in range(2, int(sqrt(Temp_list))+1): #判断质数的方法,既不能被2和sqrt(某个数)之间任何一个数整除
if Temp_list % k == 0:
Temp_list=0 #由于不能随意删减列表中数值,会影响列表数据的遍历,所以先赋值
print(Temp_list)
Prime_list=list(set(Temp_list)) #去除重复值
del Prime_list #删去被特定赋的数值
print(Prime_list) #打印某数以内的所有质数
acgods
发表于 2018-8-23 18:10:24
for num in range(101,201):
isPrimeNumber = 0
for i in range(2,num):
if num % i == 0:
isPrimeNumber = 0
break
else:
isPrimeNumber = 1
if isPrimeNumber == 1:
print(num)
d2nte
发表于 2018-8-30 09:58:54
新手·ing 发表于 2017-3-27 19:48
等待被大佬们指点!!!
请问第六行为啥m要加一啊?
Hxiaoping
发表于 2018-9-20 16:04:37
#题目 八 判断101-200之间有多少个素数,并输出所有素数。
import math
n = 0
l = []
for i in range(101, 200):
for j in range(2, int(math.sqrt(i))+1):
if i%j == 0 :
break
if j >= int(math.sqrt(i)):
n = n + 1
l.append(i)
print(l, )
print('素数有:%d'%n)
献上
君扬
发表于 2018-9-20 16:09:47
for i in range(101,200):
if i%2==0:
print(i)
君扬
发表于 2018-9-20 16:11:04
for i in range(101,200):
if i%2==0:
print(i)
君扬
发表于 2018-9-20 16:11:55
zhengsc
发表于 2018-9-29 23:26:40
from math import sqrt
for i in range(101,200,2):
for j in range(2,i):
if i%j==0:
break
else:
if j > sqrt(i):
print(i,end=" ")
break
zhengsc
发表于 2018-9-29 23:27:19
from math import sqrt
for i in range(101,200,2):
for j in range(2,i):
if i%j==0:
break
else:
if j > sqrt(i):
print(i,end=" ")
break
吃鱼的虾
发表于 2018-10-13 17:13:56
list1=
for i in range(101,201):
for m in range(2,i):
num = i % m
if num == 0:
list1.remove(i)
break
print (list1)
print (len(list1))
zhangjk19841984
发表于 2018-10-19 19:33:52
import math
list1=[]
list2=[]
count=0
for i in range(101,201):
for j in range(2,int(math.sqrt(i))+1):
if i%j==0:
list1.append(i)
for m in range(101,201):
list2.append(m)
for a in list2:
if a not in list1: #取出不是能整除列表中的元素
count+=1
print(a,end="--")
print('总计{}个素数'.format(count))
Roc乘风
发表于 2018-10-21 22:12:30
import math
count = 0
for i in range(101,200):
su = True
for m inrange(2,int(math.sqrt(i))+1):
if i % m == 0:
su = False
break
if su == True:
count += 1
print(i,end=',')
print('\n一个有{}个素数'.format(count))
另一种思路
import math
list1 = [ x for x in range(101,200)]
list2 = []
count= 0
for n in range(101,200):
for m in range(2,int(math.sqrt(n)+1)):
if n % m ==0:
list2.append(n)
break
for primenumber in list1:
if primenumber not in list2:
print(primenumber,end=',')
count += 1
print('\n素数的数量是:',count)
liujian973
发表于 2018-11-15 15:59:03
本帖最后由 liujian973 于 2018-11-15 16:39 编辑
def fun_factor(start,stop=None):
'''当只使用一个参数时为从2到该数字间的因素
当使用两个参数时,为第一个参数到第二参数的因素'''
def if_factor(number):
import math
sqrt = int(math.sqrt(number))
for i in range(3,sqrt+1,2):
if number % i ==0:return False
return True
for i in range(,+1,2):
if if_factor(i):print(i)
double-lee
发表于 2018-12-3 21:59:33
def num(n):
for i in range(2,int(n**0.5)+1):
if n % i == 0:
break
else:
print('%d 是素数'%n )
for i in range(101,200):
num(i)
xiaoweibug
发表于 2018-12-6 14:57:25
def su(x):
for i in range(2,x):
if x%i==0:
return 'false'
else:
return 'true'
for i in range(101,201):
if su(i):
print(i)
sunrise085
发表于 2018-12-21 15:35:00
本帖最后由 sunrise085 于 2018-12-21 15:36 编辑
写了三个版本,初始版本,比较原始。
第二个版本,学习着使用for循环的else分支,减少了flag的设置。while循环也有else分支
第三个版本,巧用all()做遍历判断。
#初始版本,
for i in range(101,200):
flag=True
for j in range(2,int(i**0.5)+1):
if i%j == 0:
flag=False
break
if flag:
print(i)
#使用for循环的else分支,减少标志位的设置
for i in range(101,200):
for j in range(2,int(i**0.5)+1):
if i%j == 0:
break
else:
print(i)
#一句话程序,巧用all()做遍历判断
print ()
redermens
发表于 2018-12-21 18:32:02
for i in range(101,201):
for j in range(2,i//2):
if(i%j==0):
break
if(j==(i//2-1)):
print(i)
shencong132
发表于 2019-1-3 19:26:47
ooxx7788 发表于 2017-3-27 21:10
输出
你好,看了你的答案定义的函数,并且运行了一下~有两个问题
一个是输出的答案中“1”不是素数,但也被输出了
另一个是“2”是素数,但没有被输出~可以再改进的