소수 트리
시간 제한2초메모리 제한512 MB
루트가 있는 트리가 주어질 때, 이 트리를 곱으로 나타내는 소수 트리의 최대 개수를 구합니다.
문제
Bobo가 뿌리 있는 트리(rooted tree)에 대한 곱셈 연산을 제안한다.
와 를 임의의 뿌리 있는 트리라고 하자. 그러면 는 의 각 정점 마다 의 복사본을 하나씩 만들고, 그 복사본의 뿌리를 와 합쳐서 만든다(자세한 내용은 다음 그림을 참고한다).

분명히 가 성립하며, 여기서 은 정점이 하나뿐인 뿌리 있는 트리이다. 따라서 은 모든 뿌리 있는 트리의 인수이고, 모든 뿌리 있는 트리는 자기 자신의 인수이다. 뿌리 있는 트리 의 인수가 와 뿐이라면, 를 소수 트리(prime tree)라고 부른다.
Bobo에게 정점이 개인 뿌리 있는 트리 가 있다. 정점에는 으로 번호가 붙어 있다. Bobo는 를 소수 트리들의 곱으로 가능한 한 많이 나타내고 싶어 한다. 즉, 각 ()가 소수 트리이고 을 만족하는 식 중에서 이 최대가 되는 식을 찾는다.
은 소수 트리가 아니다.
입력
입력은 0개 이상의 테스트 케이스로 이루어지며, 파일의 끝(EOF)에서 끝난다. 각 테스트 케이스는 다음과 같다.
첫 줄에 정점의 개수 이 주어진다().
둘째 줄에는 개의 정수 이 주어진다. 는 번 정점의 부모이다().
모든 테스트 케이스의 을 더한 값은 을 넘지 않는다.
출력
각 테스트 케이스에 대해, 소수 인수의 최대 개수를 나타내는 정수를 출력한다.