CF396B-On Sum of Fractions【数学】
正題
題目鏈接:https://www.luogu.com.cn/problem/CF396B
題目大意
定義
- v(n)v(n)v(n)表示≤n\leq n≤n的最大整數
- u(n)u(n)u(n)表示>n>n>n的最小整數
求∑i=2n1v(i)u(i)\sum_{i=2}^n\frac{1}{v(i)u(i)}i=2∑n?v(i)u(i)1?
解題思路
有式子b?aab=1a?1b\frac{b-a}{ab}=\frac{1}{a}-\frac1babb?a?=a1??b1?,然后原式子就是12?3+13?5+15?7+...\frac{1}{2*3}+\frac{1}{3*5}+\frac{1}{5*7}+...2?31?+3?51?+5?71?+...
我們讓式子中間的乘上一個222
12?3+13?5+13?5+15?7++...\frac{1}{2*3}+\frac{1}{3*5}+\frac{1}{3*5}+\frac{1}{5*7}++...2?31?+3?51?+3?51?+5?71?++...
5?22?3+5?33?5+...\frac{5-2}{2*3}+\frac{5-3}{3*5}+...2?35?2?+3?55?3?+...
12+13?13+15+...\frac{1}{2}+\frac{1}{3}-\frac{1}{3}+\frac{1}{5}+...21?+31??31?+51?+...
所以最后答案就是12?v(n)+u(n)?n?1v(n)u(n)\frac{1}{2}-\frac{v(n)+u(n)-n-1}{v(n)u(n)}21??v(n)u(n)v(n)+u(n)?n?1?
codecodecode
#include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ll T,n; bool notprime(ll n){for(ll i=2;i*i<=n;i++)if(n%i==0)return 1;return 0; } int main() {scanf("%lld",&T);while(T--){scanf("%lld",&n);if(n==1){printf("0/1\n");continue;}ll up=n,dn=n+1;while(notprime(++up));while(notprime(--dn));ll a=up*dn-2*(up+dn-n-1),b=up*dn*2,k=__gcd(a,b);printf("%lld/%lld\n",a/k,b/k);} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的CF396B-On Sum of Fractions【数学】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何彻底关闭win10系统更新功能win
- 下一篇: CF525D-Arthur and Wa