hdu4556(欧拉函数)
来源:互联网 发布:淘宝要扫码支付怎么弄 编辑:程序博客网 时间:2024/05/29 07:17
把树从中间隔开,只看前一半,然后第n行的分子分母大于n的数去掉,明显这里的个数是法里数列,也就是0到1的最简真分数的个数,而当法里数列a[n]=k的时候,a[n+1]=a[n]+phi[n+1]=k+phi[n+1],其中phi[n+1]是n+1的欧拉函数值,这也很明显,n+1欧拉函数值是1-----n+1与n+1互质的数的个数,则所有1到n+1与n+1互质的数都可以和n+1组成最简真分数,并且都属于n+1法里数列的元素。
因此我们只需要用筛法求出数据范围内的欧拉函数值就可以了
#include <cstdio>#include <set>#include <string>#include <cstring>#include <algorithm>#define LL __int64#define MM 1000010using namespace std;LL phi[MM],a[MM];void init(){int i,j;for(i=1;i<MM;i++)phi[i]=i;for(i=2;i<MM;i++){if(phi[i]==i){for(j=i;j<MM;j+=i)phi[j]=phi[j]/i*(i-1);}}a[1]=2;a[2]=3;for(i=3;i<MM;i++)a[i]=a[i-1]+phi[i];}int main(){ int n;init(); //freopen("D://p.txt","r",stdin);while(~scanf("%d",&n))printf("%I64d\n",a[n]*2-1); return 0;}
0 0
- hdu4556(欧拉函数)
- hdu4556(欧拉函数)
- hdu4556 欧拉函数
- HDU4556(递推求欧拉函数)
- hdu4556 Stern-Brocot Tree(欧拉函数递推关系)
- 51nod - 1136 欧拉函数(欧拉函数)
- 51nod 1136 欧拉函数(欧拉函数)
- 欧拉函数(模板)
- 欧拉函数(转)
- 欧拉函数(一)
- 欧拉函数(二)
- 欧拉函数(数学)
- 欧拉函数(模板)
- 欧拉函数(模板)
- LghtOJ1370(欧拉函数)
- poj2407Relatives(欧拉函数)
- sdoi2008(欧拉函数)
- (模板)欧拉函数
- 隐藏系统tabBar的问题
- 微信公众平台开发之大转盘功能
- 大野智笑谈“岚”成员间“压岁钱制度”
- 软件测试人员的基本修养
- 《新闻联播》专访冯小刚:春晚导演绝不干第二次
- hdu4556(欧拉函数)
- 堆与堆排序
- Kendo UI开发教程(2):准备Kendo UI开发环境
- 55-最小公倍数
- 学生管理系统
- <office>office的一二个使用经验
- 互联网产品开发乱象
- Kendo UI开发教程(3): 初始化Data 属性
- 文件管理