例10-7 uva10820(欧拉)】的更多相关文章

题目描述 给定n个正整数a1,a2,…,an,求 的值(答案模10^9+7). 输入 第一行一个正整数n. 接下来n行,每行一个正整数,分别为a1,a2,…,an. 输出 仅一行答案. 样例输入 3 6 10 15 样例输出 1595 题解 欧拉函数 由于 $\varphi$ 是积性函数,所以可以单独考虑每个质因子的贡献. 那么对于最终的 $a=i_1i_2\dots i_n$ ,若其包含 $p^c\ ,\ c>0$ ,则贡献为 $\frac{p-1}{p}·p^c$ .因此求出 $p^c$ 的…
题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的数量.现在,请你帮助沙拉公主解决这个问题,由于可能张数非常大,你只需计算出对R取模后的答案即可.R是一个质数. 输入 第一行为两个整数T,R.R<=10^9+10,T<=10000,表示该组中测试数据数目,R为模后面T行,每行一对整数N,M,见题目描述 m<=n 输出 共T行,对于每一对N,…
题目描述 给出一个数字N 输入 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N<=10^7 输出 按读入顺序输出答案. 样例输入 1 10 样例输出 136 题解 欧拉函数 其中用到了$\sum\limits_{i=1}^k\sum\limits_{j=1}^k[\gcd(i,j)=1]=2\sum\limits_{i=1}^k\varphi(i)-1$ 这个推导很简单:由欧拉函数的定义,$\sum\limits_{i=1}^k\sum\li…
跟1244差不多. //由于(x+1)没有先mod一下一直WA三个点我... //由于(x+1)没有先mod一下一直WA三个点我... #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> using namespace std; #define rep(i,s,t) for(ll i=s;i<=t;i++) #define dwn(i,s,t) for(ll i…
题目描述 给出 $n$ 和 $p$ ,求 $(\sum\limits_{i=1}^n\sum\limits_{j=1}^nij\gcd(i,j))\mod p$ . $n\le 10^{10}$ . 题解 欧拉函数(欧拉反演)+杜教筛 推式子: $$\begin{align}&\sum\limits_{i=1}^n\sum\limits_{j=1}^nij\gcd(i,j)\\=&\sum\limits_{i=1}^n\sum\limits_{j=1}^nij\sum\limits_{d|…
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入 共一个数N. 输出 共一个数,即C君应看到的学生人数. 样例输入 4 样例输出 9 题解 欧拉函数 将左下角的点的坐标视为(0,0),则如果一个除(0,1)和(1,0)以外点能够被看见,它的横纵坐标必定互质. 那么可以盖住左上半部…
题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). 输入 一个整数,为N. 输出 一个整数,为所求的答案. 样例输入 6 样例输出 15 题解 欧拉函数 易得知满足gcd(n,x)==i的小于等于n的x的个数为phi(n/i), 并且欧拉函数可以在O(√n)的时间内快速求出.. 于是可以先求出所有n的因子,再用欧拉函数得出答案. 由于因子是成对出现的,所以因子并不需要枚举到n,只需枚举到…
题意:输入n,要求满足1≤x,y≤n,且x,y互素的个数. 若输入2,则答案3为(1,1),(1,2),(2,1);所以欧拉函数求出所有数的phi值,除了1之外都加上phi值的2倍即可 通过推导: phi[n] = n*(1-1/p1)*......*(1-1/pn)            /*pi表示n的素因子,求出小于n与且与其互素的数 #include <iostream> #include <cstring> #include <cstdio> #include…
//重点就是求1-n的欧拉函数啦,重点是nlogn求法的版 //大概过程类似于筛选法求素数 #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> #include<queue> #include<vector> #include<map>…
欧拉函数phi[n]是表示1~n中与n互质的数个数. 可以用公式phi[n]=n*(1-1/p1)*(1-1/p2)*(1-1/p3)...*(1-1/pk)来表示.(p为n的质因子) 求phi[p]的过程: procedure calc(p:longint;var sum:longint); var i:longint; begin sum:=p; to trunc(sqrt(p)) do then begin sum:=sum ); do p:=p div i; // 保证每次都是质因子 e…