본문 바로가기

알고리즘/백준

백준 6131 - 완전 제곱수

문제

상근이는 선영이와 함께 게임을 하고 있다. 먼저, 상근이는 두 양의 정수 A와 B를 고른다. (1 ≤ B ≤ A ≤ 500) 그 다음, 선영이는 상근이가 고른 수를 맞춰야 한다.

상근이는 선영이에게 다음과 같은 힌트를 주었다.

A의 제곱은 B의 제곱보다 N만큼 커 (1 ≤ N ≤ 1,000)

위의 힌트 조건을 만족하는 A와 B 쌍의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다.

출력

상근이의 힌트 조건을 만족하는 (A,B) 쌍의 개수를 출력한다. 

예제 입력 1 복사

15

예제 출력 1 복사

2

 

# 백준/브론즈3/완전 제곱수

n = int(input())

cnt = 0

for i in range(1,501):
    for j in range(i, 501):
        diff = j*j
        if (diff - (i*i) == n):
            cnt += 1
        elif (diff - (i*i) > n):
            break


print(cnt)

# 완전 제곱수 : 어떤 정수를 제곱하여 만들 수 있는 수 (1,4,9,16 ..)

 

 

reference

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