Hướng dẫn how do you count the number of prime numbers in python? - làm thế nào để bạn đếm số lượng số nguyên tố trong python?


Giả sử chúng ta có giới hạn n. Chúng ta phải đếm số lượng số nguyên tố có trong phạm vi 2 đến n. Vì vậy, nếu n = 10, kết quả sẽ là 4. Vì có bốn số nguyên tố trước 10, chúng là 2, 3, 5, 7.

Show

Để giải quyết vấn đề này, chúng tôi sẽ tuân theo phương pháp này -

  • Đếm = 0
  • Lấy một mảng nguyên tố = của kích thước n + 1 và điền nó bằng sai
  • cho i = 0 đến n, làm
    • Nếu nguyên tố [i] = sai, thì
      • Tăng số lượng lên 1
      • Đặt J = 2
      • Trong khi J * tôi
        • Prime [i * j] = true
        • J = J + 1
  • Số lượng trả lại

Thí dụ

Hãy cho chúng tôi xem triển khai sau đây để hiểu rõ hơn -

& nbsp; bản demo trực tiếp

class Solution(object):
   def countPrimes(self, n):
      """
      :type n: int
      :rtype: int
      """
      count = 0
      primes = [False for i in range(n+1)]
      for i in range(2,n):
         if primes[i] == False:
            count+=1
            j = 2
            while j*i

Đầu vào

n = 50
n = 10

Đầu ra

15
4

Hướng dẫn how do you count the number of prime numbers in python? - làm thế nào để bạn đếm số lượng số nguyên tố trong python?

Cập nhật vào ngày 28 tháng 4 năm 2020 09:53:26

  • Câu hỏi và câu trả lời liên quan
  • Đếm số nguyên tố trong phạm vi trong C ++
  • Số lượng số nguyên tố trong một mảng trong C ++
  • Count numbers < = N whose difference with the count of primes upto them is > = K in C++
  • Số đếm có thể được biểu diễn dưới dạng tổng của các số nguyên tố tương đương trong C ++
  • Tạo một danh sách các số tiền nhỏ hơn N trong Python
  • Kiểm tra xem ba số được đưa ra là số nguyên tố liền kề trong Python
  • Các số nguyên tố thay thế cho đến N trong C ++?
  • Tìm tổng của tất cả các số nguyên tố có thể cắt bên dưới n trong Python
  • In tất cả các số nguyên tố an toàn bên dưới n trong C ++
  • In tất cả các số nguyên tố nhân
  • Lọc ra các số nguyên tố từ một mảng - JavaScript
  • In tất cả các số nguyên tố Proth lên đến N trong C ++
  • Sử dụng rây eratosthenes để tìm primes javascript
  • Kiểm tra xem một số có bị kẹp giữa các số nguyên tố trong C ++ không
  • Tìm số lượng số nguyên tố trong Subarray bằng C ++

Tôi đã cố gắng tìm các số nguyên tố trong một phạm vi (đầu vào sẽ được quyết định bởi người dùng) và tổng số số nguyên tố.

Tôi có thể tìm thấy các số nguyên tố nhưng không thể thực hiện một phần-tính toán các số nguyên tố. Ai giúp tôi với? Đây là chương trình

#!/usr/bin/env python
import math

lower=input("lower value:")
upper=input("upper value:")
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
 if num>1:
  for i in range (2,num):
   if num % i==0:
    break
  else: print(num)
def  count_prime(num,lower,upper):
  count_prime= 0
  for x in num:
    if lower <= x <= upper:
      count_prime += 1
print ( "count_prime:",count_prime )

Đầu ra kết quả như sau (trong khoảng từ 10 đến 100)

('Số nguyên tố giữa', 10, 'và', 100, 'là:')

sa mạc

55.1K21 Huy hiệu vàng132 Huy hiệu bạc162 Huy hiệu đồng21 gold badges132 silver badges162 bronze badges

Đã hỏi ngày 10 tháng 6 năm 2018 lúc 6:52Jun 10, 2018 at 6:52

Hướng dẫn how do you count the number of prime numbers in python? - làm thế nào để bạn đếm số lượng số nguyên tố trong python?

2

Cách dễ nhất là có một biến tăng lên mỗi khi bạn tìm thấy số nguyên tố. Vì vậy, khi bạn đang in số, cũng tăng số lượng. Bạn có thể làm điều đó theo nhiều cách khác, tức là bằng cách lưu từng số nguyên tố trong một mảng sau đó đếm số phần tử, v.v.

Để làm với biến:

lower=input("lower value:")
upper=input("upper value:")
count = 0
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
 if num>1:
  for i in range (2,num):
   if num % i==0:
    break
  else: 
    print(num)
    count += 1
print ( "count_prime:", count )

Để làm với mảng:

lower=input("lower value:")
upper=input("upper value:")
array = []
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
 if num>1:
  for i in range (2,num):
   if num % i==0:
    break
  else: 
    print(num)
    array.append(num)
print ( "count_prime:", len(array))

Đã trả lời ngày 10 tháng 6 năm 2018 lúc 6:58Jun 10, 2018 at 6:58

4

Để đếm số số nguyên tố, bạn có thể sử dụng danh sách để lưu trữ các số nguyên tố trước và sau đó chỉ cần sử dụng ____1010 để tìm số lượng số nguyên tố. Nó khá dễ hiểu điều này:

import math
store = []
lower=int(input("lower value:"))
upper=int(input("upper value:"))
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
 if num>1:
  for i in range (2,num):
   if num % i==0:
    break
  else: 
    print(num)
    store.append(num)
print("The number of prime numbers are:",len(store))

Đã trả lời ngày 10 tháng 6 năm 2018 lúc 7:10Jun 10, 2018 at 7:10

Hướng dẫn how do you count the number of prime numbers in python? - làm thế nào để bạn đếm số lượng số nguyên tố trong python?

Mahir Islammahir Hồi giáoMahir Islam

1.8612 huy hiệu vàng11 Huy hiệu bạc32 Huy hiệu đồng2 gold badges11 silver badges32 bronze badges

2

Thư viện "Sympy" sẽ hữu ích trong những tình huống này

import sympy
lower=int(input("lower value:"))          #let it be 30
upper=int(input("upper value:"))          #let it be 60
l=list(sympy.primerange(lower,upper+1))   #[31,37,41,43,47,53,59]
z=len(l)
print(z)

Đã trả lời ngày 21 tháng 8 năm 2019 lúc 13:03Aug 21, 2019 at 13:03

Hướng dẫn how do you count the number of prime numbers in python? - làm thế nào để bạn đếm số lượng số nguyên tố trong python?

Tôi đã tìm thấy một số phương thức khác để đếm số nguyên tố được tìm thấy tại https://stackoverflow.com/a/53451147/4683899. Trong ví dụ này, bạn có thể tùy chỉnh danh sách của mình.

def is_prime(n):
    if n <= 1:          # negative numbers, 0 or 1
        return False
    if n <= 3:          # 2 and 3
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False

    for i in range(5, int(math.sqrt(n)) + 1, 2):
        if n % i == 0:
            return False

    return True



ans = [i for i in input().split() if is_prime(int(i))]
print(len(ans))

hoặc nếu bạn muốn hoàn thành cùng một tác vụ trong phạm vi thì chỉ cần chỉnh sửa đầu vào (). split () thành phạm vi (dưới, trên+1)

ans = [i for i in range(lower,upper+1) if is_prime(i)]
print(len(ans))

Đã trả lời ngày 25 tháng 10 năm 2019 lúc 11:11Oct 25, 2019 at 11:11