大家好,欢迎来到IT知识分享网。
描述
反正切函数可展开成无穷级数,有如下公式
arctan(x)=n=0∑∞2n+1(−1)nx2n+1(0≤x≤1)(1)
使用反正切函数计算 是一种常用的方法。例如,最简单的计算 的方法:
π=4arctan(1)
=4(1−31+51−71+91−111+…)(2)
然而,这种方法的效率很低,但我们可以根据角度和的正切函数公式:
tan(α+β)=1−tan(α)tan(β)tan(α)+tan(β)(3)
通过简单的变换得到:
arctan(p)+arctan(q)=arctan(1−pqp+q)(4)
利用这个公式,令 p=21,q=31,则 1−pqp+q=1,有
arctan(21)+arctan(31)=arctan(1−21⋅3121+31)=arctan(1)
我们将公式 4 写成如下形式
arctan(a1)=arctan(b1)+arctan(c1)
其中 a,b,c∈N+。
我们的问题是:对于每一个给定的 a,求 b+c 的值。我们保证对于任意的 a 都存在整数解。如果有多个解,要求你给出 b+c 最小的解。
输入描述
输入文件中只有一个正整数 a。
输出描述
输出文件中只有一个整数,为 b+c 的值。
样例输入 1
1
样例输出 1
5
提示
数据范围与提示
1≤a≤6×104。
时间限制: 1000MS 内存限制: 64MB 分数:100
#include <stdio.h> using namespace std; int main() { unsigned long a,i; scanf("%ld",&a); for(i=a;;i--) if((a*a+1)%i==0) break; printf("%ld",2*a+(a*a+1)/i+i); return 0; }
难度:中等+
AC代码,至少都得将题目描述看懂吧,别看那一串字符就不答了,仔细想想,还是简单的~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/145817.html