题目
看了题目,一直在想质因子分解,但是质因子分解的个数如何分配也是令人头秃。看了题解,原来如此啊~
题目很简洁,就是这两个条件:
A
∗
B
∗
C
≤
N
A*B*C\leq N
A∗B∗C≤N 和
A
≤
B
≤
C
A\leq B \leq C
A≤B≤C
对于A来说:
1
≤
A
≤
N
3
1\leq A \leq \sqrt[3]{N}
1≤A≤3N;
对于B来说:
A
≤
B
≤
N
A
2
A\leq B \leq \sqrt[2]{\frac{N}{A}}
A≤B≤2AN;
对于C来说:
B
≤
C
≤
N
A
B
B\leq C \leq \frac{N}{AB}
B≤C≤ABN;
太菜了,竟然没有想到;注意一点,就是
a
∗
a
∗
a
≤
n
a*a*a\leq n
a∗a∗a≤n这样的写法,之前什么题目不这样写,也许是精度的原因,导致WA
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n, ans=0;
scanf("%lld", &n);
for(ll a=1; a*a*a<=n; a++){
for(ll b=a; a*b*b<=n; b++){
ans+=n/a/b-b+1;
}
}
printf("%lld\n", ans);
return 0;
}