Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream f("eratostene5.in");
- ofstream g("eratostene5.out");
- bitset<1000005>pr;
- vector<int>v;
- int n,x,fr[1000005];
- void ciur()
- {
- pr[0]=pr[1]=1;
- for(int i=4; i<=1000000; i+=2)
- pr[i]=1;
- for(int i=3; i+i<=1000000; i+=2)
- if(!pr[i])
- for(int j=i+i; j<=1000000; j+=i)
- pr[j]=1;
- v.push_back(2);
- for(int i=3; i<=1000000; i+=2)
- if(!pr[i])
- v.push_back(i);
- }
- void desc(int n)
- {
- int k=0;
- while(v[k]*v[k]<=n)
- {
- while(n%v[k]==0)
- n/=v[k],fr[v[k]]++;
- k++;
- }
- if(n>1)
- fr[n]++;
- }
- int main()
- {
- ciur();
- f>>n;
- for(int i=1; i<=n; i++)
- {
- f>>x;
- desc(x);
- }
- for(int i=0; i<v.size(); i++)
- if(fr[v[i]])
- g<<v[i]<<" "<<fr[v[i]]<<"\n";
- return 0;
- }
Add Comment
Please, Sign In to add comment