소수는 소수라고도 합니다. 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.php.cn if n <= 1: return False for i in count(2): if i * i > n: return True if n % i == 0: return False
모듈을 사용하지 않는 두 가지 방법
방법 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 ….파이썬에서 소수를 결정하는 간단한 방법에 대한 자세한 설명은 (소수), PHP 중국어 홈페이지를 주목해주세요!