Hdu1452 因子和的積性函式 以及積性函式的一些性質和舉例
在非數論的領域,積性函式指所有對於任何a,b都有性質f(ab)=f(a)f(b)的函式。
在數論中的積性函式:對於正整數n的一個算術函式 f(n),若f(1)=1,且當a,b互質時f(ab)=f(a)f(b),在數論上就稱它為積性函式。
若對於某積性函式 f(n),就算a, b不互質,也有f(ab)=f(a)f(b),則稱它為完全積性的。[1]
s(6)=s(2)*s(3)=3*4=12;
s(20)=s(4)*s(5)=7*6=42;
再看 s(50)= 1+2+5+10+25+50=93=3*31=s(2)*s(25),s(25)=1+5+25=31.
這在數論中叫積性函式,當gcd(a,b)=1
如果p是素數
s(p^n)=1+p+p^2+...+p^n= (p^(n+1)-1) /(p-1) (1)
例 hdu1452 Happy 2004
計算因子和 s(2004^X) mod 29 ,
2004=2^2 *3 *167
2004^X=4^X * 3^X *167^X
s(2004^X) ) = (s(2^2X))) * (s(3^X))) * (s(167^X)))
167%29=22
s(2004^X) ) = (s(2^2X))) * (s(3^X))) * (s(22^X)))
a=s(2^2X)=(2^(2X+1)-1) //根據(1)
b=s(3^X)= (3^(X+1)-1)/2 //
c=s(22^X)= (22^(X+1)-1)/21 //根據(1)
%運演算法則 1. (a*b) %p= ( a%p) *(b%p)
%運演算法則 2. (a/b) %p= ( a *b^(-1)%p) 除法的
s(2004^X)=(2^(2X+1)-1)* (3^(X+1)-1)/2 *(22^(X+1)-1)/21
(a*b)/c %M= a%M* b%M * inv(c)
c*inv(c)=1 %M 模為1的所有數 inv(c)為最小可以被c整除的
inv(2)=15, inv(21)=18 2*15=1 mod 29, 18*21=1 mod 29
s(2004^X)=
=((2^(2X+1)-1)* (3^(X+1)-1)*15 *(22^(X+1)-1)*18)mod29
b^(-1)是 b的逆元素(%p)即上面的inv
2的逆元素是15 ,因為2*15=30 % 29=1 % 29
21的逆元素是18 ,因為21*18=378% 29 =1 % 29
因此
a=(powi(2,2*x+1,29)-1)% 29;
b=(powi(3,x+1,29)-1)*15 % 29;
c=(powi(22,x+1,29)-1)*18 % 29;
ans=(a*b)% 29*c % 29;
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int _pow( int a, int n )
{
int b = 1;
while( n > 1 )
if( n % 2 == 0 )
{
a = ( a * a ) % 29;
n /= 2;
}
else
{
b = b * a % 29;
n--;
}
return a * b % 29;
}
int main()
{
int X;
int a, b, c;
while( scanf("%d",&X), X )
{
a = _pow( 2, 2 * X + 1 );
b = _pow( 3, ( X + 1 ) );
c = _pow( 22, ( X + 1 ) );
printf("%d\n",( a - 1 ) * (( b - 1 ) * 15) * ( c - 1 ) * 18 % 29) ;
}
return 0;
}
性質1
積性函式的值完全由質數的冪決定,這和算術基本定理有關。
即是說,若將n表示成質因子分解式
則有
性質2
若f為積性函式且有
則f為完全積性函式。
積性
φ(n) -尤拉函式,計算與n互質的正整數之數目
μ(n) -莫比烏斯函式,關於非平方數的質因子數目
gcd(n,k)-最大公因子,當k固定的情況
d(n) -n的正因子數目
σ(n) -n的所有正因子之和
σk(n)-因子函式,n的所有正因子的k次冪之和,當中k可為任何複數。
1(n) -不變的函式,定義為 1(n) = 1 (完全積性)
Id(n)-單位函式,定義為 Id(n) = n(完全積性)
Idk(n)-冪函式,對於任何複數、實數k,定義為Idk(n) = n^k(完全積性)
ε(n) -定義為:若n = 1,ε(n)=1;若 n > 1,ε(n)=0。別稱為“對於狄利克雷卷積的乘法單位”(完全積性)
λ(n) -劉維爾函式,關於能整除n的質因子的數目
γ(n),定義為γ(n)=(-1)^ω(n),在此加性函式ω(n)是不同能整除n的質數的數目
另外,所有狄利克雷特徵均是完全積性的[1]
非積性
馮·曼戈爾特函式:當n是質數p的整數冪,Λ(n)=ln(p),否則Λ(n)=0
不大於正整數n的質數的數目π(n)
整數拆分的數目P(n):一個整數能表示成正整數之和的方法的數目[2]
相關推薦
Hdu1452 因子和的積性函式 以及積性函式的一些性質和舉例
在非數論的領域,積性函式指所有對於任何a,b都有性質f(ab)=f(a)f(b)的函式。 在數論中的積性函式:對於正整數n的一個算術函式 f(n),若f(1)=1,且當a,b互質時f(ab)=f
Python中的sorted函式以及operator.itemgetter函式
文章出處 operator.itemgetter函式 operator模組提供的itemgetter函式用於獲取物件的哪些維的資料,引數為一些序號(即需要獲取的資料在物件中的序號),下面看例子。 a = [1,2,3] >>> b=operator.i
python匿名函式以及內建函式的使用
一、匿名函式 1.定義: 匿名函式顧名思義就是指:是指一類無需定義識別符號(函式名)的函式或子程式。 2.語法格式:lambda 引數:表示式 lambda語句中,開頭先寫關鍵字lambda,冒號前是引數,可以有多個,用逗號隔開;冒號右
登入介面上的驗證碼的驗證碼的製作 以及git上的一些概念和使用
1、一般的json結尾的api都是表示返回的是json格式,所以,我們一般都是在中間增加了model層和controller層之間的服務層,有利於應用層面的使用。 2、今天做了驗證碼,就是如果使用sdWebImage,由於已經封裝為快取,並且獲取圖片的方法沒有快取的方式很少
kylin安裝以及遇見到的一些問題和解決方法
環境: 三臺hadoop叢集,hive,hbase,zookeeper 三臺機器內網互相通訊,配置有一個外網ip,使用nginx埠對映 kylin安裝: 安裝部分參考文件: https://blog.csdn.net/seashouwang/article/detail
python sorted函式以及operator.itemgetter函式
參考: 《Machine Learning In Action》第二章 ############################################################### operator.itemgetter函式: import ope
數論學習筆記 尤拉函式 (一些性質和運用)內建杜教篩
定義 在數論中,對正整數n,尤拉函式是小於等於n的數中與n互質的數的數目。並且用符號φ(n)表示一個整數的尤拉函式。例如φ(8)=4。特殊的φ(1)=1。 一些尤拉函式的性質 性質一 對於一個質數n,φ(n)=n−1。 證明: 因為n是質數。
Python中的sorted函式以及operator.itemgetter函式 【轉載】
operator.itemgetter函式 operator模組提供的itemgetter函式用於獲取物件的哪些維的資料,引數為一些序號(即需要獲取的資料在物件中的序號),下面看例子。 a = [1,
python @classmethod 和 @staticmethod區別,以及類中方法引數cls和self的區別
staticmethod 首先來看@staticmethod,這個裝飾器很好理解,就是讓類中的方法變成一個普通的函式(因為是普通函式,並沒有繫結在任何一個特定的類或者例項上。所以與不需要物件例項化就可以直接呼叫)。可以使用類或者類的例項呼叫,並且沒有任何隱含引數的傳入,
C++之普通成員函式、虛擬函式以及純虛擬函式的區別與用法要點
普通成員函式是靜態編譯的,沒有執行時多型,只會根據指標或引用的“字面值”類物件,呼叫自己的普通函式;虛擬函式為了過載和多型的需要,在基類中定義的,即便定義為空;純虛擬函式是在基類中宣告的虛擬函式,它可以再基類中有定義,且派生類必須定義自己的實現方法。 假設我們有三個類Person、Teacher
Java中子類是否可以繼承父類的static變數和static方法,以及父類的private屬性和private方法
轉載自以下原文: 原文連結1 原文連結2 一、子類可以繼承父類的private屬性和private方法: 1、子類繼承父類,子類擁有了父類的所有屬性和方法。 程式驗證,父類的私有屬性和方法子類是無法直接訪問的。當然私有屬性可以通過public修飾的
由 [SDOI2012]Longge的問題 探討尤拉函式和莫比烏斯函式的一些性質和關聯
本題題解 題目傳送門:https://www.luogu.org/problem/P2303 給定一個整數\(n\),求 \[ \sum_{i=1}^n \gcd(n,i) \] 蒟蒻隨便yy了一下搞出來個\(O(\sqrt{n})\)的演算法 這題資料怎麼這麼水 首先看到gcd我們就下意識的對它反演一波
最小生成樹的一些性質和理解
1) 定義在一棵樹裡新增一條邊,並在產生的圈裡刪除一條邊叫做一次操作。(也就是說換掉一條邊並且保證結果是樹),則樹A和B是無向圖的兩個生成樹,則A可以通過若干次操作變成B。 證:把樹看作邊的集合,如果B中有一條A沒有的邊,則把這條邊加到A上,A產生一個圈中至少有一條是B中沒有的邊,把這條邊刪掉,則
platform匯流排和普通匯流排,驅動模型間的一些關係和理解
【摘要】本文以Linux 2.6.25 核心為例,分析了基於platform匯流排的驅動模型。首先介紹了Platform匯流排的基本概念,接著介紹了platform device和platform driver的定義和載入過程,分析了其與基類device 和driver的派生
51nod 1244 莫比烏斯函式之和(積性函式字首和)
關於積性函數前綴和的問題,可以關注糖老師的博客 http://blog.csdn.net/skywalkert/article/details/50500009 推導不寫了 結論是M(n)=∑ni=1u(i) M(n)=1−∑ni=2M(ni) 直接遞
MATLAB卷積運算(conv)以及通用的卷積函式my_conv的實現
conv(向量卷積運算) 兩個向量卷積,簡單理解其實就是多項式乘法。 比如:p=[1 2 3],q=[1 1]是兩個向量,p和q的卷積計算方法如下: 把p的元素作為一個多項式的係數,多項式按升冪(或降冪)排列,比如就按升冪吧,寫出對應的多項式:1+2x+3x^2;同樣的
[HDU 5728] PowMod (尤拉函式的積性+尤拉公式降冪+尤拉篩)
HDU - 5728 求 K=∑i=1mϕ(i∗n)mod1000000007 其中 n是 square-free number 求 ans=KKKK..modp 先求 K 由於 ϕ(n)是積性函式,所以對於 n的每個素因子可以提出
6265丨數論丨積性函式 丨尤拉函式丨狄利克雷卷積丨思維變換
交題網址(HDU-6265) 題意:依次輸入一個整數分解質因數的各項底數與指數,求算: ∑d|nφ(d)×nd∑d|nφ(d)×nd 思路:(其實最開始還有些數學常識的不足,比如d|n
卷積神經網絡系列之softmax,softmax loss和cross entropy的講解
caff 這一 卷積神經網絡 bsp rop 技術分享 有一個 技術 位置 我們知道卷積神經網絡(CNN)在圖像領域的應用已經非常廣泛了,一般一個CNN網絡主要包含卷積層,池化層(pooling),全連接層,損失層等。雖然現在已經開源了很多深度學習框架(比如MxNet,Ca
【C/C++開發】C++ 解構函式以及 delete 和delete[]的整理
轉自:http://hi.baidu.com/bystander1983/item/bf0b5c12b077cfec9913d651 delete和delete[] 的區別: C++告訴我們在回收用 new 分配的單個物件的記憶體空間的時候用 delete,回收用 new[] 分配的一組物