NC54752. wnm喜欢的数学题
描述
输入描述
一个整数n(n<=1e12)
输出描述
一个整数表示答案
示例1
输入:
3
输出:
3
C++14(g++5.4) 解法, 执行用时: 17ms, 内存消耗: 492K, 提交时间: 2020-04-25 16:31:36
#include<bits/stdc++.h> using namespace std; typedef long long ll; vector<ll> f; int main(){ ll n,i;cin>>n; for(i=1;i*i<n;i++){ if(n%i==0){ f.push_back(i); f.push_back(n/i); } } if(i*i==n) f.push_back(i); ll sum=0,cnt=f.size(); for(int i=0;i<cnt;i++){ for(int j=0;j<cnt;j++){ if(f[i]/__gcd(f[i],f[j])*f[j]==n) sum++; } } cout<<sum<<endl; return 0; }
C++ 解法, 执行用时: 21ms, 内存消耗: 320K, 提交时间: 2021-09-27 22:04:04
#include<bits/stdc++.h> using namespace std; vector<long long>v; void get_div(long long n) { for(int i=1;i<=n/i;i++) { if(n%i==0){ v.push_back(i); if(i!=n/i) v.push_back(n/i); } } } int main() { long long n,sum=0; cin>>n; get_div(n); for(auto i:v){ for(auto j:v){ if(i/__gcd(i,j)*j==n)sum++; } } cout<<sum; return 0; }