Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- long long int f(long long int n)
- {
- long long int ans = n, fibo[] = {0,1,1};
- while(true)
- {
- long long int to_add = ((n - fibo[2])/fibo[1]);
- if(!to_add)
- break;
- ans+=to_add;
- fibo[0] = fibo[1];
- fibo[1] = fibo[2];
- fibo[2] = (fibo[0] + fibo[1]);
- }
- return ans;
- }
- int main()
- {
- int t;
- cin>>t;
- while(t--)
- {
- long long int n;
- cin>>n;
- long long int ans = 0, v1 = 1, v2;
- while(v1 <= n)
- {
- v2 = (n/(n/v1));
- ans+=(v2 + 1 - v1)*f(n/v1);
- v1 = v2 + 1;
- }
- cout<<ans<<"\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement