Programmers_약수의 개수와 덧셈 python
프로그래머스 -약수의 개수와 덧셈 문제 입니다.
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/77884#
2. 분류 및 난이도
Programmers 문제입니다.
월간 코드 챌린지 시즌 2 문제입니다. Level 1난이도의 문제입니다.
3. 생각한 것들(문제 접근 방법)
- 문제는 직관적으로 어렵지 않습니다.
- 에라토스테네스의 체를 변형하여 코드를 작성하였습니다.
4. 접근 방법을 적용한 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import math
def solution(left, right):
#에라토스테네스의 체 변형
maxnum = right+1
tenes = [1] * maxnum
res = 0
for i in range(2,maxnum):
tenes[i] +=1
for i in range(2,maxnum//2+1) :
for j in range(2*i,maxnum,i):
tenes[j] += 1
for i in range (left,maxnum) :
if tenes[i] %2 == 1 :
res -= i
else :
res += i
return res
5. 결과
필요시. c++ 짜드리겠습니다.
This post is licensed under CC BY 4.0 by the author.