#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector<int> f;
int gcd(int a,int b){
if(!a)
return b;
return gcd(b%a,a);
}
int main(){
int n;
while(cin>>n&&n){
f.clear();
int ans=0;
for(int i=1;i<sqrt(n);i++){
if(n%i==0)
f.push_back(i),f.push_back(n/i);
}
if((int)sqrt(n)*(int)sqrt(n)==n)
f.push_back(sqrt(n));
for(int i=0;i<f.size()-1;i++){
for(int j=i+1;j<f.size();j++){
long long tmp=f[i];
tmp/=gcd(f[i],f[j]);
tmp*=f[j];
if(tmp==(long long)n)
ans++;
}
}
cout<<n<<' '<<ans+1<<endl;
}
}
#include <vector>
#include <cmath>
using namespace std;
vector<int> f;
int gcd(int a,int b){
if(!a)
return b;
return gcd(b%a,a);
}
int main(){
int n;
while(cin>>n&&n){
f.clear();
int ans=0;
for(int i=1;i<sqrt(n);i++){
if(n%i==0)
f.push_back(i),f.push_back(n/i);
}
if((int)sqrt(n)*(int)sqrt(n)==n)
f.push_back(sqrt(n));
for(int i=0;i<f.size()-1;i++){
for(int j=i+1;j<f.size();j++){
long long tmp=f[i];
tmp/=gcd(f[i],f[j]);
tmp*=f[j];
if(tmp==(long long)n)
ans++;
}
}
cout<<n<<' '<<ans+1<<endl;
}
}
Comments
Post a Comment