Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int cmmdc(int a,int b)
- {
- int t;
- while(b!=0)
- {
- t=b;
- b=a%b;
- a=t;
- }
- return a;
- }
- int nrdiv(int n)
- {
- int p=1,d,exp=0; /// p retine numarul divizorilor
- if(n%2==0)
- {
- while(n%2==0)
- {
- exp++;
- n=n/2;
- }
- p*=(exp+1);
- }
- d=3;
- while(n>1)
- {
- if(n%d==0)
- {
- exp=0;
- while(n%d==0)
- {
- exp++;
- n=n/d;
- }
- p*=(exp+1);
- }
- else
- d+=2;
- if(n>1&&d*d>n)
- {
- p*=2; /// aici exp=1
- break;
- }
- }
- return p;
- }
- int main()
- {
- int a,b,N;
- cin>>N;
- int mi=1000001,ma=0,rezultat,nd;
- for(int i=1;i<=N;i++)
- {
- cin>>a>>b;
- rezultat=cmmdc(a,b);
- nd=nrdiv(rezultat);
- if(nd%2)
- {
- if(rezultat>ma)
- ma=rezultat;
- }
- else
- {
- if(rezultat<mi)
- mi=rezultat;
- }
- }
- if(mi==1000001||ma==0)
- {
- cout<<"NU EXISTA";
- return 0;
- }
- cout<<mi<<' '<<ma<<'\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement