[Bronze IV] 단순한 문제 (Small) - 25494

문제 링크

성능 요약

메모리: 1116 KB, 시간: 88 ms

분류

수학, 브루트포스 알고리즘, 사칙연산

제출 일자

2024년 11월 8일 11:44:24

문제 설명

세 양의 정수 $a$, $b$, $c$가 주어질 때, 다음 조건을 만족하는 정수 쌍 $(x, y, z)$의 개수를 구하시오.

  • $1 \le x \le a$
  • $1 \le y \le b$
  • $1 \le z \le c$
  • $(x\,\bmod\,y) = (y\,\bmod\,z) = (z\,\bmod\,x)$

$(A\,\bmod\,B)$는 $A$를 $B$로 나눈 나머지를 의미한다.

입력

첫째 줄에 테스트 케이스의 수 $T$가 주어진다. $(1 \le T \le 100)$

다음 $T$개의 각 줄에는 세 정수 $a$, $b$, $c$가 공백으로 구분되어 주어진다. $(1 \le a, b, c \le 60)$

출력

한 줄에 하나씩 정답을 출력한다.


💡 해결 방법

💻 코드

#include<stdio.h>
 
void ans(int a, int b, int c)
 
{
 
	int count = 0;	for(int i1 = 1; i1 <= a; i1++)
 
	{
 
		for(int i2 = 1; i2 <= b; i2++)
 
		{
 
			for(int i3 = 1; i3 <= c; i3++)
 
			{
 
				if(i1 % i2 == i2 % i3 && i2 % i3 == i3 % i1)
 
				{
 
					count++;
 
					}
 
				}	
 
			}		
 
		}
 
	printf("%d", count);
 
	
 
	}
 
int main(int argc, char *argv[])
 
{
 
int t = 0; scanf("%d",  &t);
 
for(int i = 0; i < t; i++)
 
{
 
	int a, b, c= 0; scanf("%d %d %d", &a, &b, &c);
 
	ans(a, b, c);
 
	if(i < t-1)	printf("\n");
 
}
 
		
 
	return 0;			
 
}