본문 바로가기

코딩테스트(python)/백준

백준 11653번 파이썬

반응형

1. 문제

2. 설명

m을 2로 두고 나머지가 0일 때까지 최대한 나눈다. 만약 나머지가 0이 아니라면 m값에 1을 더하여 나누어준다.

N 즉 몫이 1이 될 때까지 해당 작업을 반복한다.

3. 코드

N = int(input())
m = 2
while N!=1:  #몫이 1이 되면 멈춤.
  if N%m==0: 
    print(m) 
    N = N//m
  else:
    m += 1

내가 작성한 코드

n=int(input())
a=[]
while n>1:
    for i in range(2,n+1):
        cnt=0
        for j in range(2,i):
            if i%j==0:
                cnt+=1
                break
        if cnt==0:
            if n%i==0:
                a.append(i)
                n=n//i
for k in a:
    a.sort()
    print(k)

역시나.. while문 안에 이중 for문을 넣으니 타임아웃이 떴다 ㅠㅠ

결국 답을 보고 코드를 다시 짰다...

반응형

'코딩테스트(python) > 백준' 카테고리의 다른 글

백준 4938번 파이썬  (0) 2022.09.02
백준 1929번 파이썬  (0) 2022.09.02
백준 2581번 파이썬  (0) 2022.08.30
백준 1978번 파이썬  (0) 2022.08.30
백준 10757번 파이썬  (0) 2022.08.30