Sum nyoj 尤拉定理簡單運用(數論入門)
Sum
時間限制:1000 ms | 記憶體限制:65535 KB 難度:3- 描述
-
給你一個數N,使得在1~N之間能夠找到x使得x滿足gcd( x , N ) >= M,
求解gcd(x,N)的和
- 輸入
- 多組測試資料
每行輸出兩個數N,M(N,M不超int) - 輸出
- 輸出sum
- 樣例輸入
-
5 3
- 樣例輸出
-
5
- 上傳者
尤拉定理:
尤拉定理表明,若n,a為正整數,且n,a互質;gcd(n,a)=1;
覺得維基百科比百度講解得好些(逃了一天的課 就看了zsj的數論基礎-╮(╯▽╰)╭)
http://baike.baidu.com/view/48903.htm?fr=aladdin
http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)
/*在數論,對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。*/ /*思路:列舉n的因子。 假設n的因子為d。d*gcd(x/d,n/d)=1。 d*Euler(n/d)就是因子為gcd(x,n)=d,從而求gcd(x,n)的和。*/ #include<stdio.h> #include<string.h> #include<iostream> using namespace std; long long Euler(long long n)//尤拉函式 { long long c=n,i; for(i=2;i*i<=n;i++) { if(n%i==0) { while(n%i==0) n/=i; c=c/i*(i-1);//φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn); } } if(n!=1) c=c/n*(n-1); return c; } int main() { long long a,b; while(cin>>a>>b) { int cnt; long long i,c=0; for(i=1;i*i<=a;i++) { if(a%i==0) { if(i>=b) { cnt=i;//- - c=c+cnt*Euler(a/cnt); } if(i*i!=a&&a/i>=b)//列舉i與n的因子。 { cnt=a/i; c=c+cnt*Euler(a/cnt); } } } cout<<c<<endl; } }
相關推薦
Sum nyoj 尤拉定理簡單運用(數論入門)
Sum 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 給你一個數N,使得在1~N之間能夠找到x使得x滿足gcd( x , N ) >= M, 求解gcd(x,N)的和 輸入多組測試資料 每
尤拉定理、拓展尤拉定理及其應用(尤拉降冪法)
摘要 本文主要介紹了數論中的尤拉定理,進而介紹尤拉定理的拓展及應用,結合例題展示如何使用拓展尤拉定理實現降冪取模。 在數論中,尤拉定理,(也稱費馬-尤拉定理)是一個關於同餘的性質定理。瞭解尤拉定理之前先來看一下費馬小定理: a是不能被質數p整除的正整數,則有a^(p
hdu 4704 Sum (組合+尤拉定理)
http://acm.hdu.edu.cn/showproblem.php?pid=4704大意:給定N,設S(k)是由k個數字相加得到N的方案數,求解 分析:本題中兩個數字的排列,如1、2 應該有2
另類容斥和尤拉函式巧妙應用(HDU--5514)
There are mm stones lying on a circle, and nn frogs are jumping over them. The stones are numbered from 00 to m−1m−1 and the frogs are nu
8.2學長講解(數論入門)
相應題目連結:https://vjudge.net/contest/175786#overview 1.線性篩選素數:參考http://blog.csdn.net/zhang20072844/article/details/7647763 #include N 10000
bzoj 3884 上帝與集合的正確用法 Codeforces 906D:Power Tower (擴充套件尤拉定理)
擴充套件尤拉定理 AC程式碼 bzoj 3884 #include<bits/stdc++.h> #define N 2000005 #define P pair<int,int> using namespace std; typedef
牛客網暑期ACM多校訓練營(第四場)A.Ternary String(擴充套件尤拉定理)
題意 每秒鐘2後面加一個1,1後面加1個0,然後刪除第一個字元,問需要多少秒才能刪完 題解 可以發現:0會使答案加1,1會使答案T*2+2,2會使答案T變成(2^(T+1)-1)*3,所以一邊計算即可,但是由於要取模,所以需要擴充套件尤拉定理,證明轉載自http://blog.csdn.
[BZOJ4869][Shoi2017]相逢是問候(廣義尤拉定理+線段樹)
Address 洛谷P3747 BZOJ4869 LOJ#2145 Solution 前置知識:廣義尤拉定理。 當 b ≥
2018.10.02 NOIP模擬 序列維護(線段樹+廣義尤拉定理)
描述 給出一個長度為n的序列,每個位置有個數字Ai,有2個操作: 1、區間修改,將[L,R]區間的數字加上一個數 2、區間查詢[l,r] 查詢:alal+1al+2....armodpa_l^{a_{l+1}^{a_{l+2}^{\text{....}^{a_r
2018.10.02【校內模擬】序列維護(分塊)(廣義尤拉定理)
【描述】 ~沒有題面, 非常友好~ 給出一個長度為 n 的序列, 每個位置有個數字 Ai,有 2 個操作: 1、區間修改,將[L,R]區間的數字加上一個數 2、區間查詢[l,r] 查詢alal+1al+2...armodpa_l^{a_{l+1}^{a_{l+2
luogu P4139 上帝與集合的正確用法(擴充套件尤拉定理)
本蒟蒻現在才知帶擴充套件尤拉定理。 對於任意的\(b\geq\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)+\varphi(p)}(mod\ p)\) 當\(b<\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)
逆元的幾種求法(擴充套件歐幾里得,費馬小定理或尤拉定理,特例,打表等)
乘法逆元 對於縮系中的元素,每個數a均有唯一的與之對應的乘法逆元x,使得ax≡1(mod n) 一個數有逆元的充分必要條件是gcd(a,n)=1,此時逆元唯一存在 逆元的含義:模n意義下,1個數a
求組合數取模(楊輝三角打表 & 求逆元(擴充套件歐幾里得、費馬小定理、尤拉定理、線性求法) & Lucas)
在acm競賽中,組合數取模的題目還是經常會見到的,所以這是有必要掌握的一個演算法。我本人就因為這個東西而被坑了很多次了= =之前的部落格也都扯過了,就不多說了,下面進入正題。 (1)楊輝三角求組合數 楊輝三角這個東西應該都不陌生,三角的兩邊始終為一,之後向
數論文章----關於逆元的求法(尤拉定理,階乘逆元,費馬小定理,模質數p的情況)
乘法逆元 對於縮系中的元素,每個數a均有唯一的與之對應的乘法逆元x,使得ax≡1(mod n) 一個數有逆元的充分必要條件是gcd(a,n)=1,此時逆元唯一存在 逆元的含義:模n意義下,1個數a如果有逆元x,那麼除以a相當於乘以x。 下面給出求逆元的幾種方法: 1
LOJ 2142 相逢是問候(擴充套件尤拉定理+線段樹)
題意 https://loj.ac/problem/2142 思路 一個數如果要作為指數,那麼它不能直接對模數取模,這是常識; 諸如 \(c^{c^{c^{c..}}}\) 的函式遞增飛快,不是高精度可以描述的,這也是常識。 所以,此題要用到很多數論知識。 尤拉函式 定義 \(\varphi(
【模板】尤拉定理(洛谷P5091)
https://ouuan.blog.luogu.org/solution-p5091 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using
[六省聯考2017]相逢是問候(線段樹+拓展尤拉定理)
好題啊! 調了一箇中午,發現有一條語句 \(RE\) 了。在 \(windows\) 下沒關係,\(linux\) 下有問題,大大的問題。 while(phi[tot]!=1) phi[++tot]=calc_phi(phi[tot-1]); 算是拓展尤拉定理的題吧。線段樹只是一個工具,最主要還是暴力修
hdu3221 擴充套件尤拉定理(降冪大法)
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=3221 題解:首先很容易發現遞推公式fn=fn-1*fn-2;寫出前幾項a,b,a*b,a*b^2,a^
尤拉定理(數論定理)在 模冪運算中的應用
< 前言 > 在很多情況下,我們經常會遇到很大的數a和b,求a的b 次冪中的某位數是什麼,對於運算,用暴力求解往往會溢位,並且非常麻煩。 而 利用模運算性質和 尤拉定理中的數論定理,則可方便求解 首先,尤拉定理(數論定理) 內容 尤拉定理(數論定理
尤拉定理 、擴充套件尤拉定理(尤拉降冪原理)證明
(所有^為次方) 尤拉定理: a^phi(m)=1 (mod m) ( gcd(a,m)=1 ) 設1到m中與m互質的數為 x1, x2, x3, ……x phi(m) 令pi=xi*a 引理一:p之間兩兩模m不同餘,x之間兩兩模m不同於 x兩兩模m不同樣