题意:中文题面,不需要解释了。
思路:求出数组中能被x整除的数字的最小公倍数lcm,如果lcm%x==0,则可以找到,否则找不到。
AC代码:
#include<bits/stdc++.h> using namespace std; int lcm(int a,int b){ return a/__gcd(a,b)*b; } int main(void){ int n; cin>>n; int a[n]; for(int i = 1; i <= n; i++){ cin>>a[i]; } int x; cin>>x; int res = 1; for(int i = n; i >= 1; i--){ if(x%a[i]==0){ res = lcm(res,a[i]); } } if(res%x==0){ cout<<"Possible"<<endl; } else cout<<"Impossible"<<endl; return 0; }