基本思路:唯一的考点就是最大公约数的求法吧。。
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); int x=sc.nextInt(); int[] nums=new int[n]; for(int i=0;i<n;i++){ nums[i]=sc.nextInt(); if(nums[i]<=x){ x+=nums[i]; } else{ x+=gcd(x,nums[i]); } } System.out.println(x); } } public static int gcd(int a,int b){ if(a<b) { int tmp=a; a=b; b=tmp; } return b==0?a:gcd(b,a-b); } }