题意: 给定 b, 求 lcm(a,b)/a 有几种不同的取值
b<=1e10
思路: 只有 a 取 b 的因子时答案两两不同
- #include<cstdio>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<iostream>
- #include<algorithm>
- #include<map>
- #include<set>
- #include<queue>
- #include<vector>
- using namespace std;
- typedef long long ll;
- typedef unsigned int uint;
- typedef unsigned long long ull;
- typedef pair<int,int> PII;
- typedef vector<int> VI;
- #define fi first
- #define se second
- #define MP make_pair
- #define N 1100000
- #define MOD 1000000007
- #define eps 1e-8
- #define pi acos(-1)
- #define oo 1e18
- int main()
- {
- ll n;
- scanf("%lld",&n);
- int ans=0;
- for(ll i=2;i<=sqrt(n);i++)
- if(n%i==0)
- {
- ans++;
- if(i*i<n) ans++;
- }
- ans+=2;
- if(n==1) ans=1;
- printf("%d\n",ans);
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2820897.html