보통 고등학교 화학 시간에는 화학 반응식을 배운다. 이 식은 다음과 같이 생겼다.
위의 식 (1)~(3)은 모두 좌변과 우변의 균형이 맞추어져 있다. 하지만, 아래 반응식은 그렇지 않다.
모든 화학 반응식은 질량 보존의 법칙을 지켜야 한다. 즉, 각 원소(H, O, Ca, Al, ...)의 개수는 화학 반응으로 변하지 않아야 한다. 따라서, 좌변과 우변에 분자의 개수를 맞추어 주어아 한다.
반응식 (6)의 계수는 왼쪽부터 오른쪽까지 (4,3,2)이고, 반응식 (7)의 계수는 (1,5,3,4)이다. 계수가 1인경우에는 생략가능하다.
올바른 화학 반응식의 계수는 다음과 같은 조건을 만족한다.
- 계수는 모두 양의 정수이다.
- 계수는 서로소이다. 즉, 계수의 최대공약수는 1이다.
- 모든 원소의 좌변의 양과 우변의 양은 같아야 한다.
화학 반응식이 위의 세가지 조건을 만족하는 경우에는 올바른 화학 반응식이라고 한다. 화학에서 실제로 일어날 수 없는 반응이나 존재하지 않는 분자가 등장한다고 해도, 이 문제에서는 올바른 화학 반응식이다. (H2 → H2도 올바른 반응식이다)
조건 1과 3(2는 필수는 아니다)을 만족하는 화학 반응식은 균형 반응식이라고 부른다.
화학 반응식 4와 5같이 계수가 없는 화학 반응식이 주어졌을 때, 계수를 올바르게 구하는 프로그램을 작성하시오.
모든 올바른 화학 반응식의 계수가 유일하게 결정되는 것은 아니다. 예를 들어, H2O와 NH3를 생성하는 반응식이 다음과 같다고 하자.
이 경우에 (x,y,z,u,v,w) = (2,1,1,3,2,2)가 답이 된다. 하지만, (4,2,1,3,4,2)와 (4,2,3,9,4,6)도 올바른 정답이 된다. 하지만, 이 문제에서 주어지는 모든 화학 반응식의 계수는 유일하게 결정된다.