For this Question: Given a number N , you need to calculate number of distinct values of gcd(i, N)  where i is between 1<=i<=1e18.
Note:-You need to check for all the possible values of i.Input contains a single integer N.

Constraints:-
1<=N<=10^10
Print the number of distinct numbers of gcd(i, N)  where i is between 1<=i<=1e18.Input:
16

Output:
5

Explanation:-
all disticnt numbers are - 1,2,4,8,16

Input:
3248

Output:
20 , I have written this Solution Code: #include <bits/stdc++.h>
using namespace std;
#define N 1000
int a[N][N];


// Driver code
int main()
{


 long long  n;
 cin>>n;
 long long  x=sqrt(n);
 unordered_map<long long ,int> m;
 for(int i=1;i<=x;i++){
    if(n%i==0){m[i]++;
    if(n/i!=i){m[n/i]++;}}
 }
 cout<<m.size();
 }
, In this Programming Language: C++, Now tell me if this Code is compilable or not?