Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define x 1000000
- using namespace std;
- bool mark[x+5];
- long long int isprime[x],k=0;
- void sieve()
- {
- int i,j;
- memset(mark,false,sizeof(mark));
- mark[0]=true;
- mark[1]=true;
- for(i=2;i*i<=x;i++)
- {
- if(mark[i]==false)
- {
- for(j=i*i;j<=x;j+=i)
- mark[j]=true;
- }
- }
- for(i=2;i<=x;i++){
- if(mark[i]==false)
- {
- isprime[k++]=i;
- }
- }
- }
- int main()
- {
- sieve();
- long long int n,i,j;
- while(scanf("%lld",&n) && n!=-1)
- {
- if(n<0)
- break;
- for(i=0;i<k;i++)
- {
- if(n%isprime[i]==0)
- {
- while(n%isprime[i]==0)
- {
- cout<<" "<<isprime[i]<<endl;
- n/=isprime[i];
- }
- }
- }
- if(n!=1)
- cout<<" "<<n<<endl;
- cout<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement