728x90
단계 | 문제 번호 | 제목 | 내 코드 | 코드 비교 |
1 | 5086 | 배수와 약수 | while(True): a, b = map(int,input().split()) if (a == 0 and b == 0): break if (b % a == 0): print('factor') elif (a % b == 0): print('multiple') else: print('neither') |
|
2 | 2501 | 약수 구하기 | a, n = map(int,input().split()) cnt = 0 for i in range(a): i = i+1 #1부터 n까지 if a % i == 0: cnt += 1 if cnt == n: print(i) if cnt < n: print(0) |
|
3 | 9506 | 약수들의 합 | while(True): n = int(input()) if n == -1: break sum = 0 li = [] for i in range(n-1): #자기자신 제외 i = i+1 if n%i == 0: sum+=i li.append(i) if sum == n: print(f"{n} = {(' + ').join(map(str,li))}") else: print(f"{n} is NOT perfect.") |
|
4 | 1978 | 소수 찾기 | n = int(input()) li = list(map(int,input().split())) cnt2 = 0 for num in li: cnt = 0 for i in range(num-1): #자기자신 제외 i +=1 if num % i == 0: cnt +=1 if cnt == 1: cnt2 +=1 print(cnt2) |
|
5 | 2581 | 소수 | m = int(input()) n = int(input()) sum = 0 first = 0 for num in range(m,n+1): cnt = 0 if num > 1: for i in range(2,num): if num %i ==0: cnt +=1 break if cnt == 0: sum+=num first +=1 if ==1: first_num = num if sum == 0: print(-1) else: print(sum) print(first_num) |
m = int(input()) n = int(input()) li = [] for num in range(m,n+1): cnt = 0 if num > 1: for i in range(2,num): if num %i ==0: cnt +=1 break if cnt == 0: li.append(num) if len(li) == 0: print(-1) else: print(sum(li)) print(min(li)) |
왜 틀렸는지 모르겠음 그냥 첫번째 수와 합을 구할때 배열로 구하자 |
||||
6 | 11653 | 소인수분해 | n = int(input()) li = [] k = n if n > 1: for i in range(1,n): i +=1 while(True): if k%i == 0: k = k//i print(i) else: break else: print('') |
n = int(input()) if n > 1: for i in range(2,n+1): if n%i == 0: while(n%i == 0): print(i) n = n/i else: print('') |
소인수분해는 자기자신도 나누는 것에 포함됨 출력은 다 맞는데 틀렸다면 범위를 확인해보자 |
728x90
'코딩테스트 > 백준) 단계별로 풀기' 카테고리의 다른 글
백준- 단계별로 풀어보기| 11단계- 시간 복잡도 (0) | 2023.04.13 |
---|---|
백준- 단계별로 풀어보기| 10단계- 기하: 직사각형과 삼각형 (0) | 2023.04.13 |
백준- 단계별로 풀어보기| 8단계- 일반 수학1 (0) | 2023.04.06 |
백준- 단계별로 풀어보기| 7단계- 2차원 배열 (0) | 2023.04.04 |
백준- 단계별로 풀어보기| 6단계- 심화 1 (0) | 2023.04.01 |