Pagini recente » Profil RbkPlaY | Cod sursa (job #596951) | Cod sursa (job #2057668) | Istoria paginii utilizator/dvd46328 | Cod sursa (job #2201639)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("exp.in");
ofstream out("exp.out");
const int MAX=30003;
int n,m,p[MAX],f[MAX],np;
int main()
{
for(int i=2; i*i<MAX; ++i)
if(p[i]==0)
for(int j=i*i; j<MAX; j=j+i)
p[j]=1;
for(int i=2; i<MAX; ++i)
if(p[i]==0)
p[++np]=i;
in>>m>>n;
for(int i=1; i<=n; ++i)
{
int x;
in>>x;
for(int j=1; j<=np; ++j)
while(x%p[j]==0)
{
++f[j];
x=x/p[j];
}
}
int ok=1;
for(int i=1; i<=np; ++i)
if(f[i]%m!=0)
ok=0;
else f[i]=f[i]/m;
out<<ok<<'\n';
if(ok==1)
for(int i=1; i<=np; ++i)
if(f[i]!=0)
out<<p[i]<<" "<<f[i]<<'\n';
return 0;
}