이번 글에서는 파이썬을 사용하여 소수(소수)를 구하는 간단한 방법을 주로 소개합니다. 과학적인 계산에 자주 사용되는 파이썬은 물론 이런 작은 문제도 쉽게 처리할 수 있습니다^_- 필요한 친구들은 참고하면 됩니다.
소수는 소수라고도 합니다. 1과 정수 그 자체를 제외한 다른 자연수로 나누어지지 않는 1보다 큰 자연수를 말한다. 소수는 정수론에서 중요한 역할을 합니다. 1보다 크지만 소수가 아닌 수를 합성수라고 합니다. 1과 0은 소수도 아니고 합성수도 아니다. 소수는 합성수와 반대되는 두 가지 개념으로 정수론에서 가장 기본적인 정의 중 하나입니다. 골드바흐의 추측 등 소수의 정의에 기초한 세계적 수준의 문제가 많이 있습니다. 산술의 기본 정리는 1보다 큰 모든 양의 정수는 소수의 곱으로 쓰여질 수 있으며 이 곱의 형태는 독특하다는 것을 증명합니다. 이 정리의 중요한 점은 소수의 집합에서 1이 제외된다는 것이다. 1이 소수로 간주되면 이러한 엄격한 공식에는 몇 가지 제한 사항이 적용되어야 합니다. 며칠 전 친구가 가끔 Python에 소수를 결정하는 방법을 물었습니다. 저는 온라인에서 숫자가 소수인지 확인하는 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로만 생성되거나 단독으로 생성될 수 있으므로 나머지가 0이 되는 경우는 2번만 존재한다는 뜻이다. 코드는 다음과 같다.
#!/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 사용에 대한 더 간단한 관련 기사를 보려면 소수(소수)를 결정하려면 PHP 중국어 사이트를 주의하세요!