鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 8

  [复制链接]
发表于 2018-2-20 08:53:46 | 显示全部楼层
  1. import math
  2. def isPrime(x):
  3.     for i in range(2,int(math.sqrt(x)+1)):
  4.         if(x%i == 0):
  5.             return False
  6.     return True

  7. for i in range(101,201):
  8.     if isPrime(i):
  9.         print(i,end=' ')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-23 15:50:45 | 显示全部楼层
import math as m
mul = 1
count = 0
for n in range(101,201):
        for i in range(2,int(m.sqrt(n))):
                        mul *= n % i
        if mul:
                print(n)
                count += 1
        mul = 1
print("count == %s"%str(count))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 16:38:45 | 显示全部楼层
  1. for x in range(101,200):
  2.     a = int(x ** 0.5)
  3.     flag = True
  4.     if x % 2 == 0:
  5.         continue
  6.     for y in range(2,a+1):
  7.         if x % y == 0:
  8.             flag = False
  9.             break
  10.     if flag:
  11.         print(x)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 16:44:34 | 显示全部楼层
  1. def is_prime_num(m,n):
  2.     lis = []
  3. #m为奇数,遍历定义域内奇数
  4.     for i in range(m, n+1, 2):
  5.         k = 2
  6.         count = 0
  7.         j = int(i ** 0.5)
  8.         while k <= j:
  9.             if i % k == 0:
  10.                 k += 1
  11.                 count += 1
  12.             else:
  13.                 k += 1
  14.         if count == 0:
  15.             lis.append(i)
  16.     return lis
  17. result = is_prime_num(101,200)
  18. print(result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 11:10:38 | 显示全部楼层
'''
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 '''


list1=[]
list2=[]
count=0
for i in range(101,201):
    for j in range(2,int(i**0.5)+1):
        if i % j == 0:
            list1.append(i)


for k in range(101,201):
    list2.append(k)

for a in list2:
    if a not in list1:
        print(a,end=' ')
        count += 1

print('共有%d个素数'%count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 12:12:38 From FishC Mobile | 显示全部楼层
m = 0
q = 0
for p in range(101,201):
for i in range(1,p+1):
  if p%i == 0:
   m += 1
if m == 2:
  print(p)
  q = q+1
m = 0
print('有',q,'个质数')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 13:55:43 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2018-3-5 13:58 编辑
  1. print([i for i in range(101,200) if all(i%ii for ii in range(2,int(i**0.5)+1))])
复制代码

  1. for i in range(101,200):
  2.     if all(i%ii for ii in range(2,int(i**0.5)+1)):
  3.         print(i)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-8 12:37:35 | 显示全部楼层
  1. from math import sqrt
  2. l = []
  3. temp = 0
  4. for i in range(101, 201):
  5.     temp = int(sqrt(i) + 0.5)
  6.     #print (temp)
  7.     pd = 0
  8.     for x in range(2, temp+1):
  9.         if i % x == 0:
  10.             pd = 1
  11.             break
  12.     if pd != 1:
  13.         l.append(i)
  14. print(l)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-11 21:15:53 | 显示全部楼层
本帖最后由 tusumili 于 2018-3-11 21:30 编辑
  1. i = 0
  2. for x in range(101,201):
  3.     a = x % 2
  4.     b = x % 3
  5.     c = x % 5
  6.     d = x % 7
  7.     e = x % 11
  8.     f = x % 13
  9.     g = x % 17
  10.     if a != 0 and b != 0 and c != 0 and d != 0 and e != 0 and f != 0 and g != 0:
  11.         print(x)
  12.         i += 1
  13. print('101到200之间一共有' + str(i) + '个质数')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 10:07:38 | 显示全部楼层
sum = 0
for x in range(101, 201):
    a = 0
    for y in range(2,x):
        if x % y == 0:
            a += 1
            break
    if a == 0:
        print(x,end=' ')
        sum += 1
print('一共%d个素数'% sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 21:38:55 | 显示全部楼层
import math
num=0
for i in range(101,201):
    for j in range(2,int(math.sqrt(i))+1):
        if i % j ==0:
            break
        elif i%j!=0:
            if j == (int(math.sqrt(i))):
                print("i=",i,' ')
                num+=1
print(num)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-7 11:51:04 | 显示全部楼层
  1. #判断101-200之间有多少个素数,并输出所有素数
  2. import math
  3. def isPrime(n):
  4.     x=int(math.sqrt(n))
  5.     for i in range(2,x+1):
  6.         if n%i==0:
  7.             return False
  8.     return True

  9. primelist101_200=list(filter(isPrime,[x for x in range(101,201)]))
  10. print('101~200之间共有%d个素数.'% len(primelist101_200))
  11. print(primelist101_200)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-23 19:38:12 | 显示全部楼层
def prime_number():
    list0 = []
    for i in range(101,201):
        
        list1 = []
        for j in range(1,(i + 1)):
            if i % j == 0:
                list1.append(j)
        if len(list1) == 2:
            list0.append(i)
    print('101到200之间有%d个素数' %(len(list0)),'分别是:' ,list0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-3 23:36:30 | 显示全部楼层
count=0
for i in range(101,201):
    for j in range(2,i+1):
        if i%j == 0 and j!=i:
            break
        if i%j==0 and j==i:
            print(i)
            count = count+1
print("共有%s个素数"%count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-8 20:56:27 | 显示全部楼层
  1. import math
  2. i = 2
  3. j = 0
  4. for k in range(101,201):
  5.     while i <= math.sqrt(k)+1:
  6.         if k % i == 0:
  7.             break
  8.         else:
  9.             i += 1
  10.     if k % i != 0:
  11.         print(k,end=' ')
  12.         j += 1
  13.     i = 2
  14. print('素数个数为:',j)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-14 09:54:32 | 显示全部楼层
import math
for i in range(100,201):
    for j in range(2,int(math.sqrt(i))+1):
        if i%j==0:
            break
    else:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-18 11:33:43 | 显示全部楼层
import math

list1 = list()
s = 0
for i in range(101, 201):
        for j in range(2, int(math.sqrt(i))+1):
                if i%j != 0:
                        s = 1
                else:
                        s = -1
                        break
        if s==1:
                list1.append(i)

n = len(list1)
print("共有%s个素数" % n)

for each in list1:
        print(each, end = '  ')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-18 21:37:17 | 显示全部楼层
t = 0
for a in range(101,201):
    for b in range(2,a):
        if a % b == 0:
            t += 1
    if t == 0:
        print(a,end=" ")
    t = 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-29 21:30:08 | 显示全部楼层
list0 = list(range(101, 201))
list1 = list0[:]  #复制新列表,对新列表进行删除元素的操作,不能对原列表直接进行删除元素操作
for i in list0:
    for j in range(2,int(i**0.5)+1):
        if i % j == 0:
            list1.remove(i)
            break
print('101~200之间的素数一共有:%d个,分别是:\n' % len(list1), list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-15 17:01:50 | 显示全部楼层
import math
list1=[]
list2=[]
for i in range(101,201):
    for j in range(2,i):
        c=math.fmod(i,j)
        if int(c)==0:
           list2.append(i)
           break
    if int(c)!=0:
        list1.append(i)
print('素数有:',list1)
print('非素数有:',list2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 07:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表