Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define MAXN 1001
- using namespace std;
- int nfp[MAXN],n,x,v[MAXN],a,b;
- int prim(int n)
- {
- if(n<2)
- return 0;
- if(n==2)
- return 1;
- if(n%2==0)
- return 0;
- for(int d=3;d*d<=n;d+=2)
- if(n%d==0)
- return 0;
- return 1;
- }
- int numar_fact_prim(int n) /// numar factori primi pt. fiecare numar
- {
- if(n<2)
- return 0;
- int nr=0;
- if(n%2==0)
- {
- ++nr;
- while(n%2==0)
- n/=2;
- }
- int d=3;
- while(n>1)
- {
- if(n%d==0)
- {
- ++nr;
- while(n%d==0)
- n/=d;
- }
- else
- d+=2;
- if(n>1&&d*d>n)
- ++nr,n=1;
- }
- return nr;
- }
- int main()
- {
- cin>>n;
- for(int i=1;i<=n;++i)
- {
- cin>>v[i]; /// memorez numere
- nfp[i]=numar_fact_prim(v[i]); /// memorez numarul de factori primi
- }
- for(int i=1;i<n;++i)
- {
- if(nfp[i]==nfp[i+1]) /// vecini cu acelasi numar de factori primi
- {
- if(!a) /// daca nu am gasit nicio pereche
- {
- a=v[i];
- b=v[i+1];
- }
- else /// am cel putin o pereche
- {
- if(v[i]+v[i+1]<=a+b) /// daca suma noii perechi e mai mica
- {
- a=v[i];
- b=v[i+1];
- }
- }
- }
- }
- if(a)
- cout<<a<<' '<<b;
- else
- cout<<"NU EXISTA";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement