水题。放个1就可以了。暴力的找数字也是很快的。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std; const int maxn=+;
long long a[maxn]; long long gcd(long long a,long long b)
{
if(b==) return a;
return gcd(b,a%b);
} int n; int main()
{
vector<long long>ans;
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%lld",&a[i]);
ans.push_back(a[]);
int cnt=;
for(int i=;i<=n;i++)
{
long long tmp=gcd(a[i],ans[ans.size()-]);
if(tmp==) ans.push_back(a[i]);
else
{
cnt++;
ans.push_back();
ans.push_back(a[i]);
}
}
printf("%d\n",cnt);
for(int i=;i<ans.size();i++) printf("%lld ",ans[i]);
printf("\n");
return ;
}