Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- bool ciur[1000001];
- int nrprim[78900];
- void eratostene()
- {
- int i, j, k=0;
- ciur[0]=ciur[1]=1;
- for (i=2; i<=1e3; ++i)
- if(ciur[i]==0)
- {
- for (j=i*i; j<=1e6; j+=i)
- ciur[j]=1;
- }
- for (i=1; i<=1e6; ++i)
- if (!ciur[i])
- nrprim[++k]=i;
- }
- int nrdivprim(int a)
- {
- int f, k=0, res=0; bool p;
- while (a>1)
- {
- f=nrprim[++k], p=0;
- if (f==0)
- break;
- while (a%f==0)
- a/=f, p=1;
- if (p)
- ++res;
- if (f*f>a)
- f=a;
- }
- return res;
- }
- int main()
- {
- eratostene();
- int a, b, x;
- int nrdivprimmax=-1, nr;
- cin>>a>>b;
- nrdivprimmax=nrdivprim(a), nr=a;
- while (a!=b)
- {
- x=nrdivprim(b);
- if (x>nrdivprimmax)
- nrdivprimmax=x, nr=b;
- else if (x==nrdivprimmax && b>nr)
- nr=b;
- a=b;
- cin>>b;
- }
- cout<<nr<<" "<<nrdivprimmax;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement