给出若干整数
题目描述
给定 n 个正整数:
p1,p2,…,pn.
你可以任意确定整数 e1,e2,…,en 的值,并用它们构造整数 N:
N=i=1∏npiei,
其中:
0≤ei≤10,i=1∑nei≥1.
对于一个确定的 N,定义 M 为 N 的所有正因数之和:
M=j∣Nj>0∑j.
请判断是否能够选择一组满足条件的 ei,使得 M 是 2 的整数次幂,即:
M=2t.
如果可以,请输出最大的指数 t;否则输出 NO。
原题中整数个数和目标指数均使用字母 k 表示。为避免混淆,本题面将整数个数记为 n,将目标指数记为 t。
输入格式
输入包含多组测试数据,处理到文件结束。
每组测试数据的第一行包含一个正整数 n,表示给出的整数个数。
接下来输入 n 个正整数 p1,p2,…,pn。
数据满足:
0<n≤100,
1<pi<231(1≤i≤n).
输出格式
对于每组测试数据,输出一行结果:
- 如果存在满足条件的 N,使得 M 是 2 的整数次幂,输出最大的指数 t;
- 否则输出
NO。
输出中不应包含多余的空格。
样例输入
1
2
3
2 3 4
样例输出
NO
2