题目描述
晴朗的周末,小喵带上了工具来到了海边沙滩,准备搭建沙子堡垒。
在搭建之前,小喵需要先收集沙子材料,在沙滩上有白、黄、棕三种不同颜色的沙子,小喵打算依次收集 A,B,C 克(A,B,C 都为正整数)。为了堡垒的稳定性,收集的白沙重量不能超过黄沙的重量,且黄沙重量不能超过棕沙重量。
由于小喵沙桶的容量为 N ,收集的三种沙子重量之积不能超过 N ,请你帮小喵计算,有多少种收集沙子的方案满足以上的限制?
输入格式
共 11 行:
一行一个整数 N ,表示沙桶的容量。
输出格式
一行一个整数,输出满足题目要求的收集方案数。
样例输入1
4
样例输出1
5
样例说明1
白、黄、棕沙的收集方案有如下 55 种:
{1,1,1},{1,1,2},{1,1,3},{1,1,4},{1,2,2}{1,1,1},{1,1,2},{1,1,3},{1,1,4},{1,2,2} 。
样例输入2
100000000000
样例输出2
5745290566750
代码示例:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,cnt=0;
cin>>n;
for(long long i=1;i*i*i<=n;i++){
for(long long j=i;j*j<=n/i;j++){
long long k=n/i/j;
cnt+=k-j+1;
}
}
cout<<cnt;
return 0;
}