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”是素数,但没有被输出~可以再改进的
页: 1 2 3 [4] 5 6
查看完整版本: Python:每日一题 8