[リニア]画面

エラトステネスオイラー関数のふるいです

 

コード:

INT PHI(INT N)
{ 
    int型ANS = N、MM = SQRT(N)。
    以下のために(INT I = 2; iは=ミリメートル<; iは++){ 
        IF(N%I == 0)
		{ 
            ANSの=のANS / Iが*(I-1)。
            一方、(N%のI == 0)N / = I。
        } 
    } 
    もし、(N> 1)ANS = ANS / N *(N-1)。
    ANSを返します。
}

 ふるいオイラー線形関数:

無効Yilin()
{ 
	ファイ= 1 [1]; 
	のため(int型I = 2; I <= N-;私は++)
	{ 
		IF(VIS [I]!)
		{ 
			総理[++ CNT] = I; 
			ファイ[I] = I-1; 
		} 
		のための(INT J = 1; J <= CNT && I *をプライム[J] <= N; J ++)
		{ 
			VIS [I *はプライム[J] = 1; 
			IF(I%のプライム[J] == 0)
			{ 
				ピーは[iが素数* [J] =ファイ[I] *プライム[J]; // もしプライム[j]はiが素因数は、式によれば、
私は素数[j]を*既に含まれていますすべての素因数を
破る; //保証をスクリーニングすることが一度 } ファイ[プライム* I [J]ファイ= [I] *(プライム[J] -1); } } }

 ライナーふるい約:

init()メソッドを無効に

{ 
	和[1] = 1。
	以下のために(INT I = 2; iは= N <; iは++)
	{ 
		IF(VIS [I]!)
		{ 
			プライム[++ CNT] = I。
			SPの[I] = I + 1; //最小质因子那项的等比数列和
		} 
		ための(int型J = 1; J <= CNT; J ++)
		{ 
			VIS [i *が素数[J] = 1。
			IF(I%プライム[j] == 0)
			{ 
				合計=(SUM [I] / SP [I])*(SP [i]が*プライム[J] +1)[iが素数[J] *]と、
				SP [私が総理* [J] = SP [i]は*プライム[J] +1; 
				ブレーク; 
			} 
			和[iが素数* [J] =和[I] *和[J] [プライム]。
			SP [私はprmieを* [J] =プライム[J] +1; 
// SP [i *が、プライム[J] = SP [プライム[J]] 
		} 
	} 
}

 スクリーンの数とほぼ線形の数

NUM []格納された最小品質係数の出現

D []除数の数が格納されています

INIT()を無効
{ 
	ため(INT I = 2; iが++; iが<= N)
	{ 
		IF(VIS [I]!)
		{ 
			プライム[++ CNT] = I。
			D [I] = 2; 
			NUM [I] = 1。
		} 
		のために(int型のJ = 1; J <= iが素数[j]を* && CNT <= nであり、j ++)
		{ 
			VIS [iが素数* [J] = 1。
			IF(I%プライム[j] == 0)
			{ 
				D [iが素数* [J] = D [I] /(NUM [I] +1)*(NUM [I] +2)。
				NUM [i *が、プライム[J] = NUM [i]の1を、
				ブレーク; 
			} 
			、D = D [iが素数[J] *]を[I] * D [プライム[J]。
			NUM = 1 [私がj] [プライム*]。
		} 
	} 
}

 リニア画面メビウス関数

コード:

ミュー[N]、PRI [N]、TOT、ZHI [N] INT。
ボイドふるい()
{ 
    ZHI [1] = MU [1] = 1。
    以下のために(INT I = 2; iは= N <; iは++)
    { 
        IF(ZHI [I]!)PRI [++ TOT = I、ミュー[I] = - 1。
        用(INTのJ = 1; J <= TOT && iはPRI [j]を* <= nであり、j ++)
        { 
            ZHI [i *がPRI [J] = 1。
            IF(I%PRI [J])、μ= [Iは、PRI [J] *] -ミュー[I]を、
            他{MU = 0 [iがPRI [J] *]を、破ります;} 
        } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/yelir/p/11588676.html
おすすめ