[백준 2501] 약수 구하기

alsry._.112·2023년 8월 9일
0

백준

목록 보기
18/102
post-thumbnail

🔗문제 풀러가기
단계별로 풀어보기 단계 9의 2번째 문제이다.

문제 분석

%연산을 이용하여 약수들을 구해 벡터에 저장하는 식으로 문제를 해결하였다.

코드

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	int fir, sec;

	cin >> fir;
	cin >> sec;

	vector<int> divisors;

	for (int i = 1; i <= fir; i++)
	{
		if (fir % i == 0)
		{
			divisors.push_back(i);
		}
	}

	if (divisors.size() < sec)
	{
		cout << "0";
	}
	else
	{
		cout << divisors[sec - 1];
	}
}

해석

  1. 입력받을 수 2개와 약수를 저장할 int형 vector를 선언하고 수를 입력받는다.
  2. 첫번째로 입력받은 수의 크기 만큼 반복문을 돌며 if문을 통해 첫번째 숫자의 약수들을 vector에 저장한다.
  3. 반복문이 끝나면 fi문을 통해
    만약 fir의 약수의 개수가 sec개보다 적어서 sec번째 약수가 존재하지 않을 경우에는 0을 출력하고,
    그렇지 않다면 vector는 인덱스가 0부터 시작하므로 divisors의 sec - 1 번째 인덱스의 값을 출력하면 끝!
profile
소통해요

0개의 댓글