数论求F(n)
题意:
f(5,1)=4,即5/1=5,5-1=4;
f(8,2)=3,即8/2=4,4-1=3;
f(7,3)=1,即7/3=2,2-1=1;
f(5,4)=0,即5/4=1,1-1=0;
求:
F(n)=f(n,1)+f(n,2)+f(n,3)+…+f(n,n)
=n/1+n/2+…+n/n-n
思路:
n非常大,暴力会超时,找数试找规律,练思维的题
这里先求:n/1+n/2+…+n/n (每个数的结果都是整数,有小数的舍弃小数部分)
例:F(9)=n/1+n/2+n/3+n/4+n/5+n/6+n/7+n/8+n/9
9 4 3 2 1 1 1 1 1
相差 5 1 1 1
5个1,1个2,1个3,1个4
例:F(12)=n/1+n/2+n/3+n/4+n/5+n/6+n/7+n/8+n/9+n/10+n/11+n/12
12 6 4 3 2 2 1 1 1 1 1 1
相差 6 2 1 1
6个1,2个2,1个3,1个4
法1:结论:我们可以先计算后面的,然后再加上前面的
有了这个规律:我们可以写出减少时间短的代码
法2:(不理解)
https://blog.csdn.net/liverpippta/article/details/8216071
*/
法1:
#include<stdio.h>
int main()
{
int tt;
scanf("%d",&tt