编程题:埃氏筛法
米尔科斯的曾祖母卡蒂卡是一位狂热的数学家。她喜欢用数学游戏折磨米尔科。这一次,她在一张纸上写下了一系列数字,并告诉米尔科他可以做以下事情:
•选择序列中的任意两个数字(我们称它们为AIB)和一个素数X,这样A就可以被X整除。之后,米尔科擦除A并将A/X其位置写入。最后,他删除了B,并在其位置上进行了书写。米尔科可以任意多次执行此操作。他的目标是获得尽可能高的分数,因为如果他这样做,他会从曾祖母那里得到糖果。一个序列的分数是序列中所有数字的最大公约数。他不是很擅长这个,他喜欢他的糖果,所以他请你帮助他。
编写一个程序来计算可能的最大分数。既然你是一个很好的人,你也应该打印Mirko必须执行操作的最小次数,以获得最大可能的分数。
### 输入格式:
第一行输入包含一个整数N(1≤N≤100),表示开始序列中的元素数。
第二行输入包含N个小于或等于1000000的正整数,这是Katica给Mirko的序列。
### 输出格式:
输出的唯一一行应该包含两个整数。第一个整数是Mirko可能获得的最大分数。第二个整数是Mirko需要执行的最小操作数。
### 输入样例1:
in
3
4 4 1
### 输出样例1:
out
2 1
### 输入样例2:
in
3
8 24 9
### 输出样例2:
out
12 3
### 输入样例3:
in
5
4 5 6 7 8
### 输出样例3:
out
2 2
答案:若无答案欢迎评论
•选择序列中的任意两个数字(我们称它们为AIB)和一个素数X,这样A就可以被X整除。之后,米尔科擦除A并将A/X其位置写入。最后,他删除了B,并在其位置上进行了书写。米尔科可以任意多次执行此操作。他的目标是获得尽可能高的分数,因为如果他这样做,他会从曾祖母那里得到糖果。一个序列的分数是序列中所有数字的最大公约数。他不是很擅长这个,他喜欢他的糖果,所以他请你帮助他。
编写一个程序来计算可能的最大分数。既然你是一个很好的人,你也应该打印Mirko必须执行操作的最小次数,以获得最大可能的分数。
### 输入格式:
第一行输入包含一个整数N(1≤N≤100),表示开始序列中的元素数。
第二行输入包含N个小于或等于1000000的正整数,这是Katica给Mirko的序列。
### 输出格式:
输出的唯一一行应该包含两个整数。第一个整数是Mirko可能获得的最大分数。第二个整数是Mirko需要执行的最小操作数。
### 输入样例1:
in
3
4 4 1
### 输出样例1:
out
2 1
### 输入样例2:
in
3
8 24 9
### 输出样例2:
out
12 3
### 输入样例3:
in
5
4 5 6 7 8
### 输出样例3:
out
2 2
答案:若无答案欢迎评论