码迷,mamicode.com
首页 > 其他好文 > 详细

懵逼钨丝反演的一个好像很666的函数

时间:2018-09-01 20:27:59      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:int   如何   gcd   ret   推出   bsp   cal   sum   上下   

设F[k]表示gcd(x,y)为k或k的倍数,设f[i]表示gcd(x,y)==i,如何求f[i]

那我们就可以直接套上下面的这个函数

好多题推出式子以后直接上下面这个函数就行

屡试不爽

代码:

 1 int cal(int n,int m,int k)
 2 {
 3     int ans=0;
 4     n/=k; m/=k;
 5     for(int l=1,r;l<=n&&l<=m;l=r+1)
 6     {
 7         r=min(n/(n/l),m/(m/l));
 8         ans+=(n/l)*(m/l)*(sum[r]-sum[l-1]);
 9     }
10     return ans;
11 }

 

懵逼钨丝反演的一个好像很666的函数

标签:int   如何   gcd   ret   推出   bsp   cal   sum   上下   

原文地址:https://www.cnblogs.com/Slrslr/p/9571232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!