![](/img/trans.png)
[英]COUNT PRIMES: Write a function that returns the number of prime numbers that exist up to and including a given number. solution is given below. explai
[英]Write a function that returns the number of prime numbers that exist up to and including a given number
例如count_primes(100) --> 25
def count_primes(num):
for n in range(2,num+1):
prime=True
for i in range(2,n):
if(n%i == 0):
prime=False
if prime:
print(n)
但我不知道如何计算数字。它只打印素数。
增加一个计数器变量而不是打印数字。
一旦找到除数,您也可以停止循环,因此在设置prime = False
后使用break
def count_primes(num):
counter = 0
for n in range(2,num+1):
prime=True
for i in range(2,n):
if(n%i == 0):
prime=False
break
if prime:
counter += 1
return counter
你可以添加一个数组,最后只计算数组的长度
def count_prime(num):
arr=[2]
for n in range(3,num+1):
prime=True
for i in arr:
if(n%i == 0):
prime=False
if prime:
arr.append(n)
print (arr)
return len(arr)
计数素数:编写一个函数,返回存在的素数数量,包括给定数字,例如 count_primes(100) --> 25
def count_prime(num):
# Check for 0 and 1 input
if num < 2:
return 0
# 2 or Greater
# list to store our prime number
primes = [2]
#Counter going up to the input num
x = 3
while x<=num:
for y in range(3,x,2):
if x%y == 0:
x += 2
break
else:
primes.append(x)
x += 2
print(primes)
return len(primes)
def num_check(num): primes=[] if num < 2: return 0 for num in range(num+1): if num>1: for i in range(2,num): if (num%i)==0: break else: primes.append(num) print(primes) return len(primes)
def count_primes(num):
key=0
for i in range(3,num):
flag=0
for k in range(2,i):
if(i%k==0):
flag+=1
else:
pass
if (flag==0):
key+=1
return key+1
如果您熟悉 lambdas、reduce 和 filter 函数,这里有一种方法可以在一行中完成:
count_primes = lambda x : len(reduce(lambda acc, y: list(filter(lambda z: (z==y) or (z % y != 0), acc)), [i for i in range(2, x+1)], [i for i in range(2, x+1)]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.