[백준] 6131 완전 제곱수

Hyun·2025년 7월 25일
0

백준

목록 보기
101/123

문제

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

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

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

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

입력

첫째 줄에 N이 주어진다.

출력

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

예제 입력 1

15

예제 출력 1

2

풀이

!!!!!!!!주어진 변수 범위 잘보자!!!!!!!!
B^2 + N > A^2 이면 종류, 그게 아니라면 B를 1씩 증가시켜서 반복하면 된다.
B 의 범위가 1<=B<=A인데, 처음에 0<=B<=A 로 처리해서 시간 날렸다. 문제 잘 읽어보자.

import sys
sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline

N = int(input())
cnt = 0

for A in range(1, 501):
    for B in range(1, A+1): # 실수했던 부분
        if (B**2 + N) > A**2:
            break
        if (B**2 + N) == A**2:
            cnt+=1

print(cnt)
profile
better than yesterday

0개의 댓글