>  기사  >  백엔드 개발  >  Python에서 소수를 결정하는 방법

Python에서 소수를 결정하는 방법

coldplay.xixi
coldplay.xixi원래의
2021-03-09 17:35:0842473검색

파이썬에서 소수를 판단하는 방법: 먼저 파이썬의 수학 함수를 사용한 다음 한 줄 프로그램에서 소수를 스캔합니다. 코드는 [[ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p)].

Python에서 소수를 결정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, Python 버전 3.9, DELL G3 컴퓨터.

소수를 결정하는 Python 방법:

1. 파이썬 함수를 이용한 수학

import math 
 
def isPrime(n): 
  if n <= 1: 
  return False
  for i in range(2, int(math.sqrt(n)) + 1): 
  if n % i == 0: 
    return False
  return True

2. 소수를 스캔하는 단일 라인 프로그램

from math import sqrt 
N = 100
[ p for p in  range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]

파이썬의 itertools 모듈 사용

from itertools import count 
def isPrime(n): www.jb51.net
  if n <= 1: 
    return False
  for i in count(2): 
    if i * i > n: 
      return True
    if n % i == 0: 
      return False

3. 방법 1:

def isPrime(n): 
  if n <= 1: 
    return False
  i = 2
  while i*i <= n: 
    if n % i == 0: 
      return False
    i += 1
  return True

방법 2:

def isPrime(n): 
  if n <= 1: 
    return False
  if n == 2: 
    return True
  if n % 2 == 0: 
    return False
  i = 3
  while i * i <= n: 
    if n % i == 0: 
      return False
    i += 2
  return True

예: 20001과 40001 사이의 소수(소수)를 찾아보세요

1이나 자기 자신으로만 나눌 수 있으니 나머지가 2번 밖에 없다는 뜻입니다. 0. 코드는 다음과 같습니다.

#!/usr/bin/python
 
L1=[]
for x in xrange(20001,40001):
 n = 0
 for y in xrange(1,x+1):
 if x % y == 0:
  n = n + 1
 if n == 2 :
 print x
 L1.append(x)
print L1

결과는 다음과 같습니다.

20011
20021
20023
20029
20047
20051
20063
20071
20089
20101
20107
20113
20117
20123
20129
20143
20147
20149
20161
20173
….

관련 무료 학습 권장 사항:

python 비디오 튜토리얼

위 내용은 Python에서 소수를 결정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.