728x90
문제
두 정수 n과 m이 주어졌을 때, 0 < a < b < n인 정수 쌍 (a, b) 중에서 (a2+b2+m)/(ab)가 정수인 쌍의 개수를 구하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/9094
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, n과 m이 주어진다.
두 수는 0보다 크고, 100보다 작거나 같다.
출력
각 테스트 케이스마다 문제의 조건을 만족하는 (a, b)쌍의 개수를 출력한다.
예제
# input
3
10 1
20 3
30 4
# output
2
4
5
문제 풀이
import sys
input = sys.stdin.readline
T = int(input())
for i in range(T):
n, m = map(int, input().split())
ans = 0
for a in range(1, n):
for b in range(a+1, n):
if (a**2 + b**2 + m) % (a*b) == 0:
ans += 1
print(ans)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90