欧拉(BC)

输入样例

1 1
2 1
3 2

输出样例

2
2
2f(x)打表找规律的 fx=x+1,fn(x)=x+n+1;然后用欧拉公式
 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4
 5 __int64 euler(__int64 n)
 6 {
 7      __int64 i;
 8      __int64 res = n, a = n;
 9      for(i = 2;i*i <= a; ++i)
10      {
11          if(a%i == 0)
12          {
13              res -= res / i;
14              while(a % i == 0)
15              {
16                 a /= i;
17              }
18          }
19      }
20      if(a > 1) res -= res/a;//存在大于sqrt(a)的质因子
21      return res;
22 }
23
24 int main()
25 {
26     __int64 n, x;
27     while (~scanf("%I64d%I64d", &n, &x))
28     {
29         __int64 ans = n + x + 1;
30         printf("%I64d\n", euler(ans));
31     }
32     return 0;
33 }
				
时间: 2024-10-14 19:51:00

欧拉(BC)的相关文章

POJ 2208 Pyramids 欧拉四面体

给出边长,直接就可以求出体积咯 关于欧拉四面体公式的推导及证明过程 2010-08-16 14:18 1,建议x,y,z直角坐标系.设A.B.C少拿点的坐标分别为(a1,b1,c1),(a2,b2,c2),(a3,b3,c3),四面体O-ABC的六条棱长分别为l,m,n,p,q,r: 2,四面体的体积为,由于现在不知道向量怎么打出来,我就插张图片了, 将这个式子平方后得到: 3,根据矢量数量积的坐标表达式及数量积的定义得 又根据余弦定理得 4,将上述的式子带入(1),就得到了传说中的欧拉四面体公

欧拉函数、欧拉定理和费马小定理

对于正整数n,欧拉函数是小于等于n的正整数中与n互质的数的数目,表示为φ(n). 性质1:对于素数p,φ(p)=p-1. 性质2:对于两个互质数p,q,φ(pq)=φ(p)*φ(q)=(p-1)(q-1).(积性函数)(待证) 性质3:若n是质数p的k次幂,φ(n)=pk-pk-1=(p-1)pk-1,因为除了p的倍数外,其他数都跟n互质. 性质4: 因为:x可以分解成p1q1×p2q2×p3q3--×pnqn (pi为x的质因数) 因为piqi两两互质,所以:φ(x)=φ(p1q1)×φ(p2

hdu 5152 A Strange Problem线段树+欧拉函数

*****************************************BC题解**********************************************************************1003 A Strange Problem 对于操作二,利用公式 当x >= Phi(C), A^x = A ^ (x%Phi(C) + Phi(C)) (mod C) 对于2333333这个模数来说,求18次欧拉函数后就变成了1,所以只需要保存19层第三次操作的加数

【欧拉函数】

欧拉函数 在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等. 例如φ(8)=4,因为1,3,5,7均和8互质. 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明. 简介 φ函数的值 φ(1)=1(唯一和1互质的数就是1本身). 若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质. 欧拉

Codeforces 508D Tanya and Password 欧拉通路Euler

题目链接:点击打开链接 题意:给定n个长度为3各不相同的字符串,猜一个n+2位的密码. 这个密码包含上面的所有字符串 思路: 把 abc 拆成ab -> bc 则得到一个图,目标就是走遍所有 ab->bc 这样的边,也就是找一条欧拉通路. #include <cstdio> #include <algorithm> #include <string.h> #include <queue> #include <cstring> #inc

HDU5780 gcd 欧拉函数

http://acm.hdu.edu.cn/showproblem.php?pid=5780 BC #85 1005 思路: 首先原式化简:x?^gcd(a,b)??−1 也就是求n内,(公约数是i的对数)*x^i-1的和,其中i为n内的两两最大公约数.那么问题可以转化成先预处理出i,再求和,注意O(n*300)=1,正常情况会卡常数.必须还要优化 由于 ans=∑s[d]∗(x^?d??−1),记s[d]=最大公约数为d的对数 我们注意到求s[d] or (公约数是i的对数),也就是求n/i以

欧拉函数

void Euler_Sieve_Method(int * euler, int n) { euler[1] = 1; for (int i = 2; i < n; i++) { euler[i] = i; } for (int i = 2; i < n; i++) { if (euler[i] == i) { for (int j = i; j < n; j += i) { euler[j] = euler[j] / i * (i - 1); } } } } void Euler_Si

hdu1695(莫比乌斯)或欧拉函数+容斥

题意:求1-b和1-d之内各选一个数组成数对,问最大公约数为k的数对有多少个,数对是有序的.(b,d,k<=100000) 解法1: 这个可以简化成1-b/k 和1-d/k 的互质有序数对的个数.假设b=b/k,d=d/k,b<=d.欧拉函数可以算出1-b与1-b之内的互质对数,然后在b+1到d的数i,求每个i在1-b之间有多少互质的数.解法是容斥,getans函数参数的意义:1-tool中含有rem位置之后的i的质因子的数的个数. 在 for(int j=rem;j<=factor[i

欧拉函数常用性质

欧拉函数定义:设n 为正整数,则1,2......,n中与n互质的整数个数记作f(n). 1.1 若n为素数,f(n)=n-1; 1.2 整数n=p*q,p,q为不同素数,则f(n)=f(p)*f(q)=(p-1)*(q-1) 1.3 n=p^a*q^b,f(n)=f(p^a)*f(q^b)=n*(1-1/p)*(1-1/q) 1.4 分解质因子相乘,f(n)=n*(1-1/p1)*(1-1/p2)*.......*(1-1/pk). f(100)=f(2^2*5^2)=100*1/2*4/5=

POJ2478(SummerTrainingDay04-E 欧拉函数)

Farey Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16927   Accepted: 6764 Description The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 < a < b <= n and gcd(a,b)