※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 15701번 문제인 순서쌍이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/15701 

 

15701번: 순서쌍

순서쌍은 (a, b)으로 나타낸다. 두 순서쌍 (a1, b1)과 (a2, b2)가 두 조건 a1 = a2 와 b1 = b2 를 만족한다면, 두 순서쌍을 같다고 한다. 자연수 N이 주어졌을 때, a × b가 N과 같은 서로 다른 순서쌍 (a, b)의

www.acmicpc.net

문제에서 나타내는 순서쌍의 개수는 결국 주어지는 N의 약수의 개수와 같다.

주어지는 N의 크기가 크므로, sqrt(N)범위까지 직접 나눠보는 것으로 모든 순서쌍을 찾을 수 있다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;
typedef long long ll;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	ll N; cin >> N;
	ll i = 1;
	int ans = 0;
	while (i * i <= N) {
		if (N % i == 0) {
			if (i * i == N) ans++;
			else ans += 2;
		}
		i++;
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1574 // C++] 룩 어택  (0) 2021.07.16
[BOJ 13344 // C++] Chess Tournament  (0) 2021.07.15
[BOJ 20294 // C++] 에어컨 설치  (0) 2021.07.13
[BOJ 11670 // C++] 초등 수학  (0) 2021.07.12
[BOJ 13231 // C++] Lucky Tickets  (0) 2021.07.11

+ Recent posts