#include <stdio.h>
#include <stdlib.h>

int cmp (void const *a,const void *b)
{
	return (long long *)a-(long long *)b;
}

long long  gcd(long long a,long long b)
{
	if (b%a==0) return a;
	else return gcd(b%a,a);
}

int main(void)
{
	long long a[300],b,g,k;
	int n,i,j;
	
	while(scanf("%d",&n)==1&&n)
	{
		j=0;
		b=9999999999999999;
		for (i=0;i<n*(n+1)/2;i++)
		{
			scanf("%lld",&a[j]);
			if (a[j]%2==1&&b>a[j]) b=a[j];
			if (a[j]%2==0) 
			{
				j++;
			}
			
		}
		qsort(a,j,sizeof (a[0]),cmp);
			g=a[0];
			for (i=0;i<j;i++)
			{
				g=gcd(g,a[i]);
			}
			for (k=1;k<=g/2;k+=2)
			{
				if (g%k==0&&(a[1]/(g/k)*a[0]/(g/k)==b))
				{
					printf("%lld\n",g/k);
					for (i=0;i<j;i++)
					{
						if (i!=0) printf(" ");
						printf("%lld",a[i]/(g/k));
					}
					printf("\n");
				}
			}

	}
	return 0;
}