백준 19

백준 - 11653 (python)

첫 번째 풀이 def find_primes(n): primes = [] for num in range(2, n + 1): is_prime = True for i in range(2, int(num**0.5) + 1): if num % i == 0: is_prime = False break if is_prime: primes.append(num) return primes N = int(input()) primes = find_primes(N) index = 0 while N != 1: if N % primes[index] == 0: print(primes[index]) N //= primes[index] else: index += 1 미리 n까지의 소수를 담은 배열을 생성하고 반복문을 통해 소인수 분해를 ..

백준 - 9506 (python)

입력값의 제한이 100,000인걸 보고 제한조건에 해당하는 완전수가 별로 없을거같아서 야매로 코드를 한번 짜봤다. while True: arr = [] n = int(input()) if n == -1: break elif n == 6: print("6 = 1 + 2 + 3") elif n == 28: print("28 = 1 + 2 + 4 + 7 + 14") elif n == 496: print("496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248") elif n == 8128: print( "8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064" ) else: print(f"{n} is N..