상세 컨텐츠

본문 제목

< 백준 BaekJoon : 13909번 창문 닫기> C++

C++/Baekjoon

by J2on 2024. 1. 22. 19:03

본문

 

<< 문제 >>

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

 

13909번: 창문 닫기

첫 번째 줄에는 창문의 개수와 사람의 수 N(1 ≤ N ≤ 2,100,000,000)이 주어진다.

www.acmicpc.net

 

 

사실 창문이 열려있기 위해서는 홀수번 변경되어야 한다.

 

이 말은 즉 홀수개의 약수를 가져야한다는 것과 같다.

 

대부분의 수들은 짝수개의 약수를 가진다. 

 

Ex) 6 => 1, 2, 3, 6  // 8 => 1, 2, 4, 8 // 5 => 1,5

 

각 약수들은 짝을 이루는 수가 있기 마련인데,

이렇지 않은 경우는 4*4 5*5 등 제곱수가 있다.

 

결국 홀수개의 약수를 가지는건 제곱수이다.

 

그리고 N 이하의 제곱수는 제곱했을때 N이 넘지 않는 수가 될테니까

 

N이 10이라면 1, 2, 3 이 된다.

 

<< 코드 >> 

#include <iostream>
using namespace std;

int main() {
  int num;
  cin >> num;
  
  int result = 0;
  for(int i=1; i*i <= num; i++){
    result++;
  }
  cout << result;
}

 

관련글 더보기

댓글 영역