题目:输入一组正整数,求解最多可以分解为几个素数
例:
输入:3 5 7
输出:6
因为3不能再分,5可以分为2+3,7可以分为2+2+3,一共6个。
如果在平时可能10分钟就想出来写出来了。在笔试的时候还是太紧张了,想了半天才想到被素数迷惑了,实际上跟素数没多大关系。
思路:任何数都是奇数或者偶数,所以这个数一定是n个2相加,如果是奇数,其中一个2换成3就行了,这样一想通就很简单了。只要这个数除以2就行了。比如3/2 = 1,5/2 = 2,7/2 = 3一共就是6个。边界值比如1,2,3都是没问题的。
public class Num1 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int index = 0;
long res = 0;
while (index < n){
++index;
long indexVal = in.nextLong();
res += indexVal/2;
}
System.out.println(res);
}
}