Cod sursa(job #497124)
Utilizator | Data | 1 noiembrie 2010 17:43:28 | |
---|---|---|---|
Problema | Numere 2 | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<fstream.h>
#define max 300
ifstream f("numere2.in");
ofstream g("numere2.out");
unsigned long a,b,p;
int h[max];
void eratostene()
{int i,j;
for(i=2;i<=max;i++)
if(h[i]==0)
for(j=2*i;j<=max;j+=i)
h[j]=1;
}
void verifica()
{int test=1;
for(int i=2;i<=max&&test;i++)
if(!h[i]&&p%i==0)
{a=i;
while(p%i==0)
{b++;p/=i;}
test=0;
}
}
int main()
{
f>>p;
if(p==1)
{a=1;b=2;}
else{
eratostene();
verifica();}
g<<a<<'\n'<<b;
return 0;
}