Pagini recente » Cod sursa (job #2533595) | Cod sursa (job #2896753) | Cod sursa (job #2738180) | Cod sursa (job #2719478) | Cod sursa (job #1457383)
#include <cstdio>
#include <algorithm>
#include <cmath>
#define Dim 55
using namespace std;
int n,t,i,x,y;
long long v[Dim],p[Dim];
long long cmmdc(long long a, long long b)
{
int r = a % b;
while(r)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
freopen("streetcrypto.in", "r", stdin);
freopen("streetcrypto.out", "w", stdout);
scanf("%d", &t);
for(i = 1; i <= t; ++ i)
{
scanf("%d", &n);
scanf("%lld ", &v[1]);
for(i = 2; i <= n; ++ i)
{
scanf("%lld", &v[i]);
y = sqrt(v[i]);
if(y * y == v[i])
v[i] = y;
x = cmmdc(v[i], v[i - 1]);
if(x != 1)
p[++ p[0]] = x;
}
if(y * y == v[i])
v[i] = y;
x = cmmdc(v[1], v[n]);
if(x != 1)
p[++ p[0]] = x;
sort(p + 1, p + p[0] + 1);
for(i = 1; i <= p[0]; ++ i)
printf("%lld ", p[i]);
}
return 0;
}