Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 300300 points
Problem Statement
Given is a positive integer NN. How many tuples (A,B,C)(A,B,C) of positive integers satisfy A×B+C=NA×B+C=N?
Constraints
- 2≤N≤1062≤N≤106
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
NN
Output
Print the answer.
Sample Input 1 Copy
Copy
3
Sample Output 1 Copy
Copy
3
There are 33 tuples of integers that satisfy A×B+C=3A×B+C=3: (A,B,C)=(1,1,2),(1,2,1),(2,1,1)(A,B,C)=(1,1,2),(1,2,1),(2,1,1).
Sample Input 2 Copy
Copy
100
Sample Output 2 Copy
Copy
473
Sample Input 3 Copy
Copy
1000000
Sample Output 3 Copy
Copy
13969985
思路:
当A 和 B 确定 c就确定了
A 确定了,B的个数就确定了 n -1 / A ,也就是B就是 1 ....n -1 / A
那么枚举A就行了
code:
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define N 100003
#define mod 100000
#define pb push_back
#define x first
#define y second
#define ull unsigned long long
#define ll long long
using namespace std;
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
ll n;
cin >> n;
ll res = 0;
for(int i = 1;i <= n - 1;i++)
{
res += (n - 1) / i;
}
cout << res<< endl;
return 0;
}