尤拉函式模板(acm筆記)
直接轉載過來,寫的很好
尤拉函式模板(求1~N之間與N互質的數的個數)包括1
也可以用打表的方法寫
#include <iostream> #include <cmath> using namespace std; int Euler(int n) { int num=n; for(int i=2;i<=sqrt(n);i++) if(n%i==0) { num=num/i*(i-1);//先進行除法防止溢位(num=num*(1-1/p(i))) while(n%i==0) n/=i; } if(n>1) num=num/n*(n-1); return num; } int main() { cout << Euler(100)<< endl; return 0; }
相關推薦
尤拉函式模板(acm筆記)
直接轉載過來,寫的很好 尤拉函式模板(求1~N之間與N互質的數的個數)包括1 也可以用打表的方法寫 #include <iostream> #include <cmath&g
POJ3090 Visible Lattice Points (數論:尤拉函式模板)
題目連結:傳送門 思路: 所有gcd(x, y) = 1的數對都滿足題意,然後還有(1, 0) 和 (0, 1)。 #include <iostream> #include <cstring> using namespace std; const in
【51nod】尤拉函式之和(數論,杜教篩)
文章目錄 題目 分析 一個性質 嘗試遞推 分塊 打表 線性篩尤拉函式 一個性質 線性篩 程式碼 題目 12
【尤拉函式】(小於或等於n的數中與n互質的數的數目)
【尤拉函式】 在數論,對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為Euler's totient function、φ函式、尤拉商數等
尤拉函式模板及其性質
尤拉函式定義:對於一個整數N,小於 N 且與 N 互質的數的個數;列入 φ(8)=4,因為1,3,5,7與它互質, 模板有兩個,一個是直接求N的尤拉函式,一個是求1~N中所有數的尤拉函式; 尤拉函式的一些性質: ① N是不為0的整數。φ(1)=1(本身)。 ② 除了N&g
c++中cmath函式庫(學生筆記)
c++中cmath是一個重要的數學函式庫。呼叫時必須包含cmath主檔案。 #include #include 其常用函式原型: int abs(int n) 求n的絕對值 double cos/sin/tan(double x) 求x的三角函式值(x為弧度值) double exp(dou
LCT模板(學習筆記)(洛谷3690)(加邊,刪邊,修改點權)
題目連結 最近學習了一波LCT qwq 強勢安利Flashhu的部落格!!!!! 真的特別詳細(可惜我不會弄連結) 如果有想要學習\(LCT\)的同學,可以直接看他的部落格 我這裡就簡單寫一點自己的體會啊。 \(LCT\)大致上就是一個支援加邊,刪邊,維護子樹資訊,路徑修改,維護路徑資訊的一個數據結構 本質
Smith Numbers(尤拉函式,容斥原理)
While skimming his phone directory in 1982, Albert Wilansky, a mathematician of Lehigh University,noticed that the telephone number of his brother-in-law
一、函式模板(Function Template)
本系列是《C++Template》(作者:David Vandevoorde, Nicolai M. Josuttis)的學習總結。 1:函式模板(Function Template) 所謂函式模板是由引數表示的一系列的函式。函式模板可以被不同的型別引數
FZU 1759 Super A^B mod C (尤拉函式,快速冪,降冪公式)
一道嚇人的題。。 不禁再次感嘆數學真偉大,使用下面的降冪公式很簡單就寫出來了。 phi是尤拉函式,如果不太清楚尤拉函式是什麼,怎麼求尤拉函式,可以看看下面這兩個部落格,或者參考維基百科。 學會了求尤拉函式值,我們就可以利用上面那個降冪公式來計算結果了。 #in
區間互素(篩法尤拉函式模板+容斥原理)(1695)
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8818 Accepted Submission
尤拉函式模板--------------------------------------C語言——菜鳥級
#include<stdio.h> int oula(int n)//尤拉函式 用於 求得 小於正整數 n 且與 n {int res=n; int i; for(i=2
尤拉函式(模板)
#include <iostream> #include <cmath> using namespace std; int oula(int n) { int ans=n; int i; for(i=2;i<=sqrt(n);i++) {
Luogu4980 【模板】Polya定理(Polya定理+尤拉函式)
對於置換0→i,1→i+1……,其中包含0的迴圈的元素個數顯然是n/gcd(i,n),由對稱性,迴圈節個數即為gcd(i,n)。 那麼要求的即為Σngcd(i,n)/n(i=0~n-1,也即1~n)。考慮列舉gcd。顯然gcd(i,n)=x在該範圍內解的個數是φ(n/x)。分解一下質因數即可。
線性篩尤拉函式與莫比烏斯函式 (模板)
#include<bits/stdc++.h> using namespace std; const int MAXN = 1e5+1; int prime[MAXN]; //素數 i
數論學習筆記 尤拉函式 (一些性質和運用)內建杜教篩
定義 在數論中,對正整數n,尤拉函式是小於等於n的數中與n互質的數的數目。並且用符號φ(n)表示一個整數的尤拉函式。例如φ(8)=4。特殊的φ(1)=1。 一些尤拉函式的性質 性質一 對於一個質數n,φ(n)=n−1。 證明: 因為n是質數。
【人類簡史】從動物到上帝 [以色列-尤瓦爾 · 赫拉利](閱讀筆記)
暑假預約的書時隔兩個月終於到我的手上啦。暑假看了《未來簡史》,沒有做筆記,哪天補回來。 我能不能先寫一下,看看自己達到作者境界的多少了。 人類簡史。 宇宙爆炸後,出現的星球,有個叫地球的,因為位置合適,小概率事件中出現了生命,經歷多個紀元,從樹上往地面發展的那支猿人最終成為了人類,
BZOJ4869 六省聯考2017相逢是問候(線段樹+尤拉函式)
由擴充套件尤拉定理,a^(a^(a^(……^x)))%p中x作為指數的模數應該是φ(φ(φ(φ(……p)))),而p取log次φ就會變為1,也即每個位置一旦被修改一定次數後就會變為定值。線段樹維護區間剩餘修改次數的最大值,暴力修改即可。 可以預處理出每個位置進行k次操作後的值。直接計算是log^3的
(尤拉函式應用)1040 最大公約數之和
1040 最大公約數之和 1 秒 131,072 KB 80 分 5 級題 給出一個n,求1-n這n個數,同n的最大公約數的和。比如:n = 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,
BZOJ4804 尤拉心算(莫比烏斯反演+尤拉函式+線性篩)
一通套路後得Σφ(d)μ(D/d)⌊n/D⌋2。顯然整除分塊,問題在於怎麼快速計算φ和μ的狄利克雷卷積。積性函式的卷積還是積性函式,那麼線性篩即可。因為μ(pc)=0 (c>=2),所以f(pc)還是比較好算的,討論一波即可。 #include<iostream> #inclu