[백준 BOJ] 2501번 약수 구하기 (C언어)
2022. 1. 20. 22:31ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/2501
접근 방법 - 약수의 개념을 다루고 있는 수학적 사고력 문제
백준 2501번 문제는 약수에 대한 이해를 묻고 있는 수학적 사고력 문제이다.
약수란 임의의 숫자에 대해서 나누어 떨어지는 숫자를 말하는데, 이를 이용해서 문제를 풀면 된다.
필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.
코드의 실행 순서
1) 2개의 숫자를 입력받는다. (n의 약수 중 num번째 약수)
2) 반복문을 실행한다. (a: 약수의 순서 카운팅 하는 변수, i: 약수 구하는 변수)
- i가 n의 약수인지 판별한다. 약수라면 a에 1을 더한다.
- a가 num과 같다면 현재의 i를 출력한다.
3) 2)에서 i를 출력했다면 즉시 실행 종료하고, 반복문 속에서 출력한 약수가 없다면 0을 출력한다.
(여기서 출력한 약수가 없는 경우는 n의 총약수의 개수가 num보다 작은 경우이다.)
반응형
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
//백준 2501번 코드
int main() {
int n, num;
scanf("%d %d", &n, &num);
int i, a = 0;
for (i = 1; i <= n; i++) {
if (n % i == 0) { a++; }
if (a == num) {
printf("%d", i);
return 0;
}
}
printf("0");
}
제출 결과
(2021.12.31 백준 2501번 문제 제출 결과)
반응형
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 2557번 Hello World (C언어) (0) | 2022.01.21 |
---|---|
[백준 BOJ] 2525번 오븐 시계 (C언어) (0) | 2022.01.21 |
[백준 BOJ] 2480번 주사위 세개 (C언어) (0) | 2022.01.20 |
[백준 BOJ] 2475번 검증수 (C언어) (0) | 2022.01.20 |
[백준 BOJ] 2444번 별 찍기 - 7 (C언어) (0) | 2022.01.20 |