1 소수를 이용하여 계산을 정의
# - * - 코딩 :. UTF-8 - * - # 버전 : python3.7 '' ' : prime_number 파일 @ @ 저자 : zhangyangyang @ 만들기 : 2020년 3월 22일을 발언 @' '' # 버전 1에 대한
가져 오기 날짜 # 가져 오기 모듈 계산 효율성
시작 = datetime.datetime.now () COUNT = 0 에 대한 X 의 범위 (2,100000) : #이 지정된 범위 내에서 소수를 찾기 위해 I 의 범위 (2, X) : # 1 이외의 그 자체로 나눈 숫자 IF X의 %의 I == 0 : BREAK 다른 : #을인쇄 (X) . COUNT = 1 + 델타 = (datetime.datetime.now () - 시작) .total_seconds () #의 total_seconds () 초 총 수는 인쇄 ( ' COUNT = ' , COUNT, ' 델타 = ' , 델타) # 벽 에 시간 결과 : COUNT = 148.146291 # 9592 델타 매우 비효율적
2 최적화 1 계산되고 임계 값 제곱 값
# 버전 2 : 최적화
가져 오기 날짜 #의 수입 모듈 계산 효율성 시작 = datetime.datetime.now () COUNT = 0 에 대한 X 의 범위 (2,100000 ) 에 대한 I 의 범위 (2, INT (X + 0.5 ** 1).) : #의 최적화 1, 테스트 : 임계 값 제곱 값 IF X의 %의 I == 0 : BREAK 다른 : #의 인쇄 (X) COUNT = 1 + 델타 = (datetime.datetime.now () - 시작) .total_seconds ( ) #의 total_seconds () 초 총 수 인쇄 ( ' COUNT = ', COUNT, ' 델타 = ' 델타) 의 실행 결과 COUNT = 9592 = 1.084154 # 델타 효율이 크게 향상
3, 최적화 2 :이 명 전체 참여보다 짝수 큰
# 버전 3 : 최적화 + 가져 오기 날짜 #의 수입 모듈 계산 효율성 시작 = datetime.datetime.now () COUNT = 1. # 자신의 2를 인쇄 처음부터 인쇄 (2) # 3 에 대한 X 의 범위 (3,100000,2) : # 최적화 2 : 3 홀수의 선두로부터 # I에 대한 범위 (3, INT (X ** 0.5 + 1).) 최적화 3 : 홀수 아닌 모듈 (2) 에 대한 I 의 범위 (3, INT (X ** 0.5 ) + 2) : #의 최적화 : 즉, 그렇지 않은 짝수 계수 IF X의 %의 I == 0 : BREAK 다른 : #의 인쇄 (X) COUNT = 1 +. 델타- = (Datetime.datetime.now () 시작) .total_seconds () #의 total_seconds () 초 총 수는 인쇄 ( ' COUNT = ' , COUNT, ' 델타 = ' , 델타) # 벽 시간 :의 실행 결과 COUNT = 9592을 성능을 더욱 향상시키기 위해 델타 = 0.553471 #
4 최적화 3 : 5가 5의 배수를 제외한 모든 다중 합성 수 있습니다
# 버전 4 : 최적화 ++ 가져 오기 날짜 #의 수입 모듈 계산 효율성 시작 = datetime.datetime.now () COUNT = 1. # 자신의 2를 인쇄 처음부터 인쇄 (2) # 3 에 대한 X 의 범위 (3,100000,2) : # 최적화 2 : 3 홀수부터 IF X> (10) 와 X 5 % == 0 : 계속 #의 최적화 : 5 제외 배수로 #을 범위 I (3, INT (X + 0.5 ** 1)). # 최적화 3 : 홀수 아닌 모듈 (2) 에 대한 I 의 범위 (3, INT (X ** 0.5) + 1,2) : #의 최적화 : 즉, 그들은 않으며 짝수 계수 IF X의 %의 I == 0 BREAK을 다른 : #의 인쇄 (X) . COUNT = 1 + 델타 = (datetime.datetime.now () - 시작) .total_seconds () #의 total_seconds () 초 총 번호 인쇄 ( ' COUNT = ' , COUNT, ' 델타 = ' 델타 ) #의 벽에 시간 결과 : COUNT = 9592 = 0.493866 델타
5, 품질 응용 프로그램의 수 :
암호 분야에서의 응용 프로그램은 큰 소수를 사용해야합니다