소수, 소인수, 약수 예제

Eunwoo Lee·2022년 7월 13일
0

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

import  random
import  math

class Number():

    def __init__(self, n):
        self.num = n

    def measure(self): # 약수
        array = []
        for i in range(1, self.num + 1):
            if self.num % i == 0:
                array.append(i)
        return array

    def prime_num(self): # 소수
        array = []
        array1 = [True for i in range(self.num + 1)]

        for i in range(2, int(math.sqrt(self.num + 1))):
            if array1[i] == True:
                j = 2
                while i * j <= self.num:
                    array1[i * j] = False
                    j += 1

        for i in range(2, self.num + 1):
            if array1[i]:
                array.append(i)
        return array

    def small_number(self): 소인수
        array = []
        for i in range(1, self.num + 1):
            if self.num % i == 0:
                array.append(i)

        for i in range(len(array)):
            j = 2
            if i == j:
                j += 1
                continue
            else:
                if i % j == 0:
                    array.pop(i)
                    j += 1
        return array




random_num = random.randint(100, 1000)
num = Number(random_num)
print(random_num)
print(num.measure())
print(num.prime_num())
print(num.small_number())

0개의 댓글