Python에서 임의의 소수 생성

Rayven Esplanada 2023년10월10일
Python에서 임의의 소수 생성

이 튜토리얼은 Python에서 임의의 소수를 생성하고 출력하는 방법을 보여줍니다.

소수는 프로그래밍, 특히 암호화에 사용되는 매우 유용한 상수입니다. 소수의 사용은 민감한 데이터를 암호화 및 해시하고 우연히 해독되는 것을 방지하는 데 사용할 수 있으므로 암호화 및 해싱에 매우 중요합니다.

주어진 범위로 난수를 생성하는 함수 생성

소수에는 2 개의 요인 만 있습니다 (요인은 다른 숫자를 나누고 결과적으로 정수가 될 수있는 숫자입니다). 소수는 1과 그 자체로만 나눌 수 있습니다.

0에서 무한대까지의 임의의 소수를 생성하는 것은 기술적으로 불가능합니다. 엄청난 수까지 유지하려면 많은 처리 능력이 필요하기 때문입니다.

따라서 설정된 범위 내에서 소수를 수집하려면 숫자 범위를 매개 변수로 포함해야합니다.

가장 먼저 할 일은 주어진 범위 내의 모든 소수를 목록으로 모으는 함수를 만드는 것입니다. 이 함수의 경우 범위 내의 모든 숫자를 반복하고 나눌 수있는 숫자 만 1이고 그 자체인지 확인합니다.

def primesInRange(x, y):
    prime_list = []
    for n in range(x, y):
        isPrime = True

        for num in range(2, n):
            if n % num == 0:
                isPrime = False

        if isPrime:
            prime_list.append(n)

    return prime_list


print(primesInRange(100, 250))

출력은 주어진 범위 100에서 250까지의 모든 소수를 인쇄합니다.

출력:

[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241]

다음 단계는primesInRange()함수에 의해 반환 된 소수의 주어진 범위에서 난수를 생성하는 것입니다.

Python random모듈 아래에는 주어진 반복 가능 또는 시퀀스에서 임의의 요소를 선택하는choice()라는 함수가 있습니다.

위에서 구현 된primesInRange()함수가 주어지면 목록 변수로 반환 값을 잡고random.choice()를 사용하여 목록 내에서 임의의 소수를 선택합니다. choice()함수를 사용하기 전에random모듈을 가져 오는 것을 잊지 마십시오.

import random

prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)

print("Generated random prime number: ", randomPrime)

무작위 출력 샘플 :

Generated random prime number:  191

다음은이 솔루션의 전체 소스 코드입니다.

import random


def primesInRange(x, y):
    prime_list = []
    for n in range(x, y):
        isPrime = True

        for num in range(2, n):
            if n % num == 0:
                isPrime = False

        if isPrime:
            prime_list.append(n)
    return prime_list


prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)

print("Generated random prime number: ", randomPrime)
Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python Number