Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("maxdiv.in");
- ofstream fout("maxdiv.out");
- int n, t, v[1002], i, j, dmax, a[1002];
- int l, lmax, st, dr, ns;
- int nrdiv(int x)
- {
- int e, d, nrd;
- nrd = 1;
- if(x==1)
- nrd = 1;
- else
- {
- d = 2;
- while(x > 1)
- {
- e = 0;
- while(x % d == 0)
- {
- e++;
- x = x / d;
- }
- nrd = nrd * (e+1);
- if(d == 2)
- d++;
- else
- d = d + 2;
- }
- }
- return nrd;
- }
- int main()
- {
- fin >> n >> t;
- for(i = 1; i <= n; i++)
- {
- fin >> v[i];
- a[i] = nrdiv(v[i]);
- }
- for(i = 1; i <= n; i++)
- {
- if(a[i] > dmax)
- dmax = a[i];
- }
- for(i = 1; i <= n; i++)
- {
- if(a[i] == dmax)
- ns++;
- }
- a[n+1] = dmax - 1;
- for(i = 1; i <= n; i++)
- {
- if(a[i] == dmax)
- {
- j = i + 1;
- l = 1;
- while(j <= n && a[j] != dmax)
- {
- j++;
- l++;
- }
- if(l > lmax && a[j] == dmax)
- {
- lmax = l;
- st = i;
- dr = j;
- }
- i = j - 1;
- }
- }
- if(t == 1)
- fout << ns - 1 << '\n';
- else
- {
- for(i = st; i <= dr; i++)
- fout << v[i] << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement