Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("sortare_divizori.in");
- ofstream fout("sortare_divizori.out");
- struct element
- {
- int val,nr;
- }a[1004];
- int divizor(int x)
- {
- int f,nrdiv=0,e;
- f=2;
- nrdiv=1;
- while(x>1)
- {
- e=0;
- while(x%f==0)
- {
- x/=f;
- e++;
- }
- if(e>0)nrdiv*=(e+1);
- if(f*f<x) f++;
- else f=x;
- }
- return nrdiv;
- }
- int main()
- {
- element aux;
- int x,n,i,j,nr1,nr2,k,p=1,e,f=2,nrdiv=1;
- fin>>n;
- for(i=1;i<=n;i++)
- {
- fin>>a[i].val;
- a[i].nr=divizor(a[i].val);
- }
- for(i=1;i<=n;i++)
- for(j=i+1;j<=n;j++)
- {
- if(a[i].nr<a[j].nr)
- {
- aux=a[i];
- a[i]=a[j];
- a[j]=aux;;
- }
- else if(a[i].nr==a[j].nr && a[i].val>a[j].val)
- {
- aux=a[i];
- a[i]=a[j];
- a[j]=aux;
- }
- }
- for(i=1;i<=n;i++)fout<<a[i].val<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement