Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- using namespace std;
- int arr[100],primesize,prime[1000000];
- void sieve_prime(int num)
- {
- int j=2;
- for(int i=3; i<sqrt(num); i+=2)
- {
- if(arr[i]==0)
- {
- for(int j=i; j*i<num; j++)
- {
- arr[i*j]=1;
- }
- }
- }
- prime[1]=2;
- for(int i=2; i<num; i++)
- {
- if(arr[i]==0 && i%2!=0)
- {
- prime[j]=i;
- j++;
- primesize++;
- }
- }
- }
- int NOD(int n)
- {
- int mul=1;
- for(int i=1; i<primesize && prime[i]*prime[i]; i++)
- {
- int cont=0;
- while(n%prime[i]==0)
- {
- cont++;
- n/=prime[i];
- }
- mul=mul*(cont+1);
- }
- return mul;
- }
- int main()
- {
- int num,x;
- while(cin>>num)
- {
- sieve_prime(num);
- x=NOD(num);
- cout<<x<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement