문제 설명
두 정수 left와 right가 매개변수로 주어집니다.
left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
문제 유형
[Algorithm] 약수의 합
문제 설명정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 문제 유형약수 구하기 의사코드총합을 저장할 변수(sum)를 선언한다.[반복문] 2부터 √N
eo-oe.tistory.com
- 예전에 풀이한 알고리즘과 유사한 문제이다.
코드 작성
#include <cmath>
using namespace std;
int GetCountDivisors(int num)
{
int count = 0;
int numSquare = sqrt(num);
for (int divisor = 1; divisor <= numSquare; divisor++)
{
if (num % divisor == 0)
{
int quotient = num / divisor;
if (divisor != quotient)
{
count += 1;
}
count += 1;
}
}
return count;
}
int solution(int left, int right) {
int result = 0;
for (int num = left; num <= right; num++)
{
int count = GetCountDivisors(num);
if (count % 2 == 0)
result += num;
else
result -= num;
}
return result;
}'Algorithm > Practice' 카테고리의 다른 글
| [Algorithm] 부족한 금액 계산하기 (0) | 2024.12.18 |
|---|---|
| [Algorithm] 문자열 내림차순으로 배치하기 (1) | 2024.12.17 |
| [Algorithm] 내적 (0) | 2024.12.16 |
| [Algorithm] 수박수박수박수박수박수? (0) | 2024.12.16 |
| [Algorithm] 가운데 글자 가져오기 (1) | 2024.12.14 |