欧拉函数φ(x)简要介绍及c++实现】的更多相关文章

我还是很喜欢数论,从此吃喝不问,就此沉沦. 欧拉函数φ(x)的值为在[1,x)的区间内与x互质的数的个数 通式:    其中p1, p2……pn为x的所有质因数,x是不为0的整数.φ(1)=1. 注意:每种质因数只一个. 比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4 介绍几个性质: 1.若n是质数p的k次幂,则,因为除了p的倍数外,其他数都跟n互质. 2.积性函数——若m,n互质,. 3.当n为质数时, , 其实与上述类似. 4.若n为质数则, 这个挺重要的. 5…
题意: 题目背景略去,将这道题很容易转化为,给出n求,n以内的有序数对(x, y)互素的对数. 分析: 问题还可以继续转化. 根据对称性,我们可以假设x<y,当x=y时,满足条件的只有(1, 1). 设f(n)为 集合S{(x, y) | x<y且x.y互素} 的个数,则所求答案为2f(n)+1 f(n)表达式为: ,其中φ(n)为欧拉函数 这里有欧拉函数的一些介绍 #include <cstdio> ; ], sum[maxn + ]; void phi_table(int n)…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2818 题意:给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 其实就是一个转化问题,求gcd(x, y) = k, 1 <= x, y <= n的对数等于求gcd(x, y) = 1, 1 <= x, y <= n/k的对数.那么接下来我们就只要枚举每个素数k=prime[i]了,然后用到欧拉函数就可以求出来了,Σ( 2*Σ(…
题目链接: http://poj.org/problem?id=2480 题意:∑gcd(i, N) 1<=i <=N,就这个公式,给你一个n,让你求sum=gcd(1,n)+gcd(2,n)+gcd(3,n)+…………gcd(n-1,n)+gcd(n,n),(1<=n<2^31)是多少? 放心吧!!!暴力肯定是做不出来的,如果你数论只会gcd(和我一样),那还是学点东西再来挑战这个题吧!    这个题需要用到欧拉函数的知识…… 欧拉函数的定义:对正整数n,欧拉函数是小于n的正整数…
基本定理: 首先看一下核心代码: 核心代码 原理解析: 当初我看不懂这段代码,主要有这么几个问题: 1.定理里面不是一开始写了一个n*xxx么?为什么代码里没有*n? 2.ans不是*(prime[i]-1)么?为什么到了第二个while循环变成*prime[i]了? 3.定理里面不是要/pi么?为什么代码里没有/pi????????????? 公式化简 首先我们来分析一下整个程序的原理,如果把程序的原理搞明白了,这三个问题也就自然而然的解决了 这个程序的原理是基于唯一分解定理: 那么我们可以把…
GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4141    Accepted Submission(s): 1441 Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y)…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6265 题目大意:首先T是测试组数,n代表当前这个数的因子的种类,然后接下来的p和q,代表当前这个数的因子中含有p的q次方.然后让你求题目第一行给你的信息. 首先理一下思路. 第一步,我们需要算题目中要求的公式(第一行),首先,他是一个积性函数,所以我们先将题目中的第一行的式子命名为F(n).对于F(n),我们可以分着求他的每一个因子的解,然后最终将这一写乘起来就可以了. F(n) = F(p1^q1…
首先这一题用的是欧拉函数!!函数!!不是什么欧拉公式!! 欧拉函数求的就是题目要求的数. 关于欧拉函数的模板网上百度一下到处都是,原理也容易找,这里要介绍一下另一个强势模板. 在这一题的讨论里看到的. 上题上代码. ----------------------------------------------------------------------------------- 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长…
题目链接 首先来介绍欧拉函数. 设欧拉函数为f(n),则f(n)=1~n中与n互质的数的个数. 欧拉函数有三条引论: 1.若n为素数,则f(n)=n-1; 2.若n为pa,则f(n)=(p-1)*(pa-1). 3.若gcd(a,b)=1,则f(a*b)=f(a)*f(b). 下面代码给出欧拉函数的求法.可以和线性筛结合. ;i<n;++i){ if(!f[i]){ prime[++num]=i; phi[i]=i-; } ;j<=num&&prime[j]*i<n;++…
                                                10200 - Prime Time 此题极坑(本菜太弱),鉴定完毕,9遍过. 题意:很简单的求一个区间[a,b]内满足i*i+i+41(i>=a&&i<=b,0<=a<=b<=10000.)是素数的数有多个,求出百分比. 思路:直接裸判就行了(竟然不超时),但结果要加上1e-8(are you kidding me?). 下面来说说我怎么跪了,开始也是直接裸判,我…