首页 > 试题广场 >

KiKi求质数个数

[编程题]KiKi求质数个数
  • 热度指数:47992 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
KiKi知道了什么是质数(只能被1和他自身整除的数),他现在想知道所有三位整数中,有多少个质数。

输入描述:


输出描述:
一行,一个整数,表示所有三位整数中,有多少个质数。
lst= [2,3]

for i in range(4,1000):
    for j in lst:
        if i % j == 0:
            break
    else:
        lst.append(i)
cout = 0
for i in lst:
    if i < 100:
        cout = cout +1
    else:
        break
print(f"{len(lst)-cout}")
发表于 2021-03-02 21:19:28 回复(0)
a = []
for i in range(100,1000):
    for j in range(2,i):
        if (i%j == 0):
            break
    else:
        a.append(i)
print(len(a))

发表于 2020-10-11 01:47:14 回复(1)
题中有一个限制条件,三位数(100~999),所以判断质数的起点需要从100开始,多次测试用例不通过原因是计算了小于100的质数。python版代码如下,主函数其实就一行。
class Solustion():
    def CountParseNumber(self,num):
        t_lst = [k for k in [self.isPrimeNumber(i) for i in range(100,num+1)] if k==True]
        return len(t_lst)
    
    def isPrimeNumber(self,x):
        flag = True
        if(x==1):
            flag = False
        for i in range(2,int(x)):
            if(x%i==0):
                flag=False
        return flag
    
so = Solustion()
print so.CountParseNumber(999)


发表于 2020-07-27 16:10:29 回复(0)
count = 0
for i in range(100, 1000):
    for j in range(2, i):
        if i % j == 0:
            count += 1
            break
print(900 - count)

发表于 2020-07-20 09:10:40 回复(0)
m=0 for i in range(100,999):
   j=2  for j in range(2,i//2): if(i%j==0): break  else:
      m+=1 print(m)
发表于 2020-07-16 16:57:55 回复(0)
python
1.定义函数f 得出is_zhizhu = 1 为质数
算法采用循环 用x对0到x-1取模,为0 则不是素数 退出循环
2.for in 迭代 得出结果并相加
def f(x):
    is_zhishu = 1
    for n in range(2,x):
        if x%n == 0:
            is_zhishu = 0
            break
    return is_zhishu

sum = 0
for l in range(100,1000):
    sum += f(l)
print(sum)


发表于 2020-06-13 22:08:47 回复(0)