목록문제/백준_파이썬 (155)
sm 기술 블로그
import math arr_prime = [0 for _ in range(123456*2+1)] # 한번에 출력하기 위해 result 사용 result = '' # 1. 소수 저장 for i in range(1, 246913): is_prime = True for j in range(2, int(math.sqrt(i))+1): if(i % j == 0): is_prime = False break if(is_prime and i != 1): arr_prime[i] = 1 # 2. 값 받아오기 arr_num = [] while(True): N = int(input()) if(N == 0): break arr_num.append(N) # 3. 개수 세기 for i in arr_num: # 범위가 아니여서 마..
import math M, N = map(int, input().split()) for i in range(M, N+1): if(i == 2 or i == 5): print(i) continue index = i % 10 if((index == 1 or index == 3 or index == 7 or index == 9) and i != 1): is_prime = True R = int(math.sqrt(i)) for j in range(2, R+1): if(i % j == 0): is_prime = False break if(is_prime): print(i) 시간제한이 있어 많이 생각해야 하는 문제. 소수에 대한 팁 : 1. 10이상 부터 소수는 일의자리가 1,3,7,9에만 분포되어 있다. 2. 값..
N = int(input()) cnt = 2 for _ in range(N): if(N == 1): break if(N % cnt == 0): print(cnt) N /= cnt else: cnt += 1 크게 어렵지 않은 문제. (시간은 다른 로직도 대체적으로 오래걸린다.)
M = int(input()) N = int(input()) arr = [] sum = 0 for i in range(M, N+1): cnt = 0 if(i == 1): continue for j in range(1, i+1): if(i % j == 0): cnt += 1 if(cnt == 2): arr.append(i) sum += i if(arr == []): print(-1) else: print("{1}\n{0}".format(min(arr), sum)) # 깜빡하고 반대로 씀 전 문제를 풀었으면 로직은 어렵지 않으나, 시간이 너무 오래걸린다. 나중에 다시한번 풀어보자.