程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 【NOIP訓練】【規律+數論】歐拉函數的應用,noip歐拉

【NOIP訓練】【規律+數論】歐拉函數的應用,noip歐拉

編輯:C++入門知識

【NOIP訓練】【規律+數論】歐拉函數的應用,noip歐拉


Problem 1

【題目大意】

給出 f(i)=\sum_{(x,i)=1}x\,,\,g(i)=\sum_{x|i}f(x)

多組數據 $T\leq1000$,給出  n\,(n\leq10^9) 求出 g(n)

 

題解

f(i)=\frac{\phi(i)n}{2}

證明:  $\phi$(i) 除了 i=2 以為均為偶數, 所以互質的個數成對。

(a,n)=1(n-a,n)=1

所以對於每對的和為 n , 共有 \frac{\phi(i)}{2} 對 。

f(i)=\frac{\phi(i)n}{2}

 

 

Problem 2

【題目大意】

在第一個圓上寫入  1 ,在第二個圓上寫入1,2 ,此後每一次在前一個圓的基礎上,每兩個數之間寫上他們的和,定義 f(i) 為第i個圓中數字i的個數。

給出 n\,(n\leq10^7) ,求 f(n)

 

題解

f(i)=\phi(i)

證明:(a,b)=1(a,a+b)=1,(b,a+b)=1,圓中的數字相鄰兩兩互質。

對於一個數字 n=a+b 只可能由與他互質的兩個數 a,b 相加而成並且每一種構造方法是唯一的。

所以 f(i)=\phi(i)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved