728x90
1. 문제
https://codeup.kr/problem.php?id=2028
삼각수
약수의 개수가 처음으로 k개를 넘는 삼각수를 출력한다.
codeup.kr
[출처 : 코드업(https://codeup.kr/)]
이번 문제는 약수의 개수가 처음으로 k개를 넘는 삼각수를 구하는 문제입니다.
※ 삼각수란?
1 = 1
3 = 1 + 2
6 = 1 + 2 + 3
이와 같은 규칙으로 나온수를 삼각수라한다.
2. 해답
#include <stdio.h>
int Aliquot_count(int num) {
int count = 0;
int tmp = 0;
if (num == 1) return 1;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
// 약수 구하기
if (i > (num / i)) break;
if ((num / i) == i) count++;
else count += 2;
}
}
return count;
}
int main()
{
int num;
int tmp = 1;
int i = 2;
scanf("%d", &num);
while (Aliquot_count(tmp) <= num) {
tmp += i; // 삼각수
i++;
}
printf("%d\n", tmp);
return 0;
}
'프로그래밍 > CodeUp' 카테고리의 다른 글
CodeUp[Q_2034] : 인수 분해 (0) | 2020.03.25 |
---|---|
CodeUp[Q_2029] : 숫자 끼워 넣기 (0) | 2020.03.24 |
CodeUp[Q_2027] : 콘웨이의 1만 달러짜리 수열 (0) | 2020.03.21 |
CodeUp[Q_2026] : 16진수를 2진수로 변환하기 (0) | 2020.03.20 |
CodeUp[Q_2025] : 좋은 날 (0) | 2020.03.19 |