백준 20

백준 - 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..

백준 - 1193 (python)

처음 풀이 num = 1 cycle = -1 X = int(input()) count = 0 while True: j = num if cycle == 1: for i in range(0, j, +1): count += 1 if count == X: print(f"{i + 1}/{j}") break j -= 1 if count == X: break else: for i in range(0, j, +1): count += 1 if count == X: print(f"{j}/{i + 1}") break j -= 1 if count == X: break num += 1 cycle *= -1 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 . . . 분자와 분모가 1씩 증가하고 감소하는게 교차로 된다는 ..

카테고리 없음 2024.02.19