[기초 수학] 약수, 소수

JERRY·2025년 1월 5일
0

Python

목록 보기
18/35
post-thumbnail

약수

소수

소인수분해

[연습 문제.1]

  • 100부터 1000사이의 난수에 대해서 약수, 소수, 그리고 소인수를 출력하는
    프로그램을 만들어보자.
import random

rNum = random.randint(100, 1000)
print(f'rNum: {rNum}')

for num in range(1, rNum+1):

    soinsuFlag = 0

    #약수
    if rNum % num == 0:
        print(f'[약수]: {num}')
        soinsuFlag += 1

    # 소수
    if num != 1:
        flag = True
        for n in range(2, num):
            if num % n == 0:
                flag = False
                break

        if (flag):
            print(f'[소수]: {num}')
            soinsuFlag += 1

    # 소인수
    if soinsuFlag >= 2:
        print(f'[소인수]: {num}')

[연습 문제.2]

  • 100부터 1000사이의 난수를 소인수분해를 하고 각각의 소인수에 대한 지수를
    출력하는 프로그램을 만들어보자
import random

rNum = random.randint(100, 1000)
print(f'rNum: {rNum}')

soinsuList = []

n = 2
while n <= rNum:
    if rNum % n == 0:
        print(f'소인수: {n}')
        soinsuList.append(n)
        rNum /= n
    else:
        n += 1

print(f'soinsuList: {soinsuList}')

tempNum = 0
for s in soinsuList:
    if tempNum != s:
        print(f'{s}\'s count: {soinsuList.count(s)}')
        tempNum = s

최대공약수

[연습 문제.3]

  • 100부터 1000사이의 2개의 난수에 대해서 공약수와 최대공약수를 출력하고,
    서로소인지 출력하는 프로그램을 만들어보자.
import random

rNum1 = random.randint(100, 1000)
rNum2 = random.randint(100, 1000)

print(f'rNum1: {rNum1}')
print(f'rNum2: {rNum2}')

maxNum =0
for n in range(1, (min(rNum1, rNum2) + 1)):
    if rNum1 % n == 0 and rNum2 % n == 0:
        print(f'공약수: {n}')
        maxNum = n

print(f'최대공약수: {maxNum}')

if maxNum == 1:
    print(f'{rNum1}{rNum2}는 서로소이다.')

최소공배수

[연습 문제.4]

  • 100부터 1000사이의 2개의 난수에 대해서 최대공약수와 최소공배수를 출력하는
    프로그램을 만들어보자.
import random

rNum1 = random.randint(1, 100)
rNum2 = random.randint(1, 100)

print(f'rNum1: {rNum1}')
print(f'rNum2: {rNum2}')

maxNum = 0
for n in range(1, (min(rNum1, rNum2) + 1)):
    if rNum1 % n == 0 and rNum2 % n == 0:
        print(f'공약수: {n}')
        maxNum = n

print(f'최대공약수: {maxNum}')

minNum = (rNum1 * rNum2) // maxNum
print('최소공배수: {}'.format(minNum))

0개의 댓글