51Nod 1136:尤拉函式
https://www.51nod.com/Challenge/Problem.html#!#problemId=1136
對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為Euler's totient function、φ函式、尤拉商數等。例如:φ(8) = 4(Phi(8) = 4),因為1,3,5,7均和8互質。
輸入
輸入一個數N。(2 <= N <= 10^9)
輸出
輸出Phi(n)。
輸入樣例
8
輸出樣例
4
φ(n) = n*(1-1/p1)*(1-1/p2)*......(1-1/pn) 其中(p1.....pn)為N的素因子
#include<stdio.h>
int main()
{
long long n,i,sum;
scanf("%lld",&n);
sum=n;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
sum-=sum*1/i;
while(n%i==0)
n/=i;
}
}
if(n!=1)
sum-=sum*1/n;
printf("%lld\n",sum);
return 0;
}
相關推薦
51Nod 1136:尤拉函式
https://www.51nod.com/Challenge/Problem.html#!#problemId=1136 對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為Euler's totient function、φ函式、尤拉商數等。
POJ3090 Visible Lattice Points (數論:尤拉函式模板)
題目連結:傳送門 思路: 所有gcd(x, y) = 1的數對都滿足題意,然後還有(1, 0) 和 (0, 1)。 #include <iostream> #include <cstring> using namespace std; const in
[洛谷P5106]dkw的lcm:尤拉函式+容斥原理+擴充套件尤拉定理
分析 考慮使用尤拉函式的計算公式化簡原式,因為有: \[lcm(i_1,i_2,...,i_k)=p_1^{q_{1\ max}} \times p_2^{q_{2\ max}} \times ... \times p_m^{q_{m\ max}}\] 其實就是分解質因數,丟到那個尤拉函式計算式子裡:
【51nod】尤拉函式之和(數論,杜教篩)
文章目錄 題目 分析 一個性質 嘗試遞推 分塊 打表 線性篩尤拉函式 一個性質 線性篩 程式碼 題目 12
poj1284 && caioj 1159 尤拉函式1:原根
這道題不知道這個定理很難做出來。 除非暴力找規律。 我原本找的時候出了問題 暴力找出的從13及以上的答案就有問題了 因為13的12次方會溢位 那麼該怎麼做? 快速冪派上用場。 把前幾個素數
caioj 1161 尤拉函式3:可見點數
(x, y)被看到僅當x與y互質 由此聯想到尤拉函式 x=y是1個點,然後把正方形分成兩半,一邊是φ(n) 所以答案是2*φ(n)+1 #include<cstdio> #inclu
尤拉函式 解題報告(51nod)
基準時間限制:1 秒 空間限制:131072 KB 分值: 0 難度:基礎題 收藏 關注 對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為
51nod-1040 最大公約數之和(尤拉函式)
基準時間限制:1 秒 空間限制:131072 KB 分值: 80 難度:5級演算法題 收藏 關注 給出一個n,求1-n這n個數,同n的最大公約數的和。比如:n = 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 = 15
Pollard的rho啟發式因子分解演算法 & [CodeVS 4939] 尤拉函式:Miller-Rabin + Pollard-rho 質因數分解
Pollard的rho啟發式因子分解演算法用於給出整數的一個因子。在一定的合理假設下,如果n有一個因子p,可在O(p√)的期望時間內可找出n的一個因子p。 關於其複雜度,Wikipedia是這樣敘述的: If the pseudo random num
51nod 1040 最大公約數之和(尤拉函式)
水平較水,想不到,看的討論版 與n的公約數,肯定是n的因子 那我們列舉n的因子就好了 假設因子為x,那麼x的貢獻次數就是1-n有多少個數與n的gcd=x,即1-n/x有多少個數與n/x互質,即ph
【51NOD】 1040-最大公約數之和(尤拉函式)
原題連線 首先補充一個知識點,尤拉函式: 在數論,對正整數n,尤拉函式是小於n的正整數中與n互質的數的數目(φ(1)=1)。此函式以其首名研究者尤拉命名(Euler’s totient function),它又稱為Euler’s totient f
51nod-1040-1040 最大公約數之和(尤拉函式)
原題連結 給出一個n,求1-n這n個數,同n的最大公約數的和。比如:n = 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 = 15 Input
51nod 1040 求1-n這n個數,同n的最大公約數的和(尤拉函式)
題目:給出一個n,求1-n這n個數,同n的最大公約數的和。比如:n = 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 = 15 思路:一個數與n的最大公約數肯定是n的因子中的一個,所以只需要列舉n的每一個因子x,然
[尤拉函式]51nod 1188 最大公約數之和 V2 題解
(傳送門) 題目大意 求∑i=1n−1∑j=i+1ngcd(i,j)\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}gcd(i,j)∑i=1n−1∑j=i+1ngcd(i,j) 解題
[尤拉函式]51nod 1040 最大公約數之和 題解
(傳送門) 題目大意 求∑i=1ngcd(i,n)\sum_{i=1}^{n}\ gcd(i,n)∑i=1ngcd(i,n) 解題分析 注意,所有gcd(x,n)最後都是n的因數。所以可以對因數分類,
數學 尤拉函式相關
尤拉函式相關 1,\(phi(i)\)表示在1到i的數中與i互質的數的個數。 2,\(O(\sqrt{n})\)求\(phi\) 算數基本定理: \[ phi(i)=i*(p_1-1)/p_1*(p_2-1)/p_2*……*(p_k-1)/p_k \] 列舉質因數套公式即可: code:
一類尤拉函式相關的求和式推導
\(\\\) 寫在前面 因為最近做了不少和尤拉函式相關的求和問題,而這一類求和的推導有沒有涉及到反演和卷積,所以單獨寫一寫。 給出的題目順序與難度大致無關,是按照個人做題的順序安排的。 再次宣告尤拉函式的定義:\(\varphi(x)\) 表示 \([1,x]\) 裡的所有整數中,與 \(x\)
[BZOJ4026]dC Loves Number Theory 尤拉函式+線段樹
連結 題意:給定長度為 \(n\) 的序列 A,每次求區間 \([l,r]\) 的乘積的尤拉函式 題解 考慮離線怎麼搞,將詢問按右端點排序,然後按順序掃這個序列 對於每個 \(A_i\) ,列舉它的質因數,由於不同的質因數只算一次,所以我們只關心每個質數它最後一次出現的位置,開一棵線段樹維護
hdu5528(積性函式+尤拉函式)
題意:設(題目已把f(6)的表給出),,給定n(n<=1e9),求g(n) 最主要的是求f(m),考慮到模數大於0的情況比較多,所以考慮考慮求ij mod n==0的情況。。 然後其實從題目給的表中看出對一個a來說,他0的個數和gcd(a,n)有關,其實也很容易證明,對一個數a來說
尤拉函式 線段樹 狀壓 奇數國
讓我們一起來%forever_shi神犇 題意:求區間積的 ϕ \phi ϕ值。 題解: