【51nod】尤拉函式之和(數論,杜教篩)
文章目錄
題目
分析
尤拉函式
φ(n)表示小於等於
n的與
n互質的數的個數。
令答案
f(n)=i=1∑nφ(i)。
一個性質
可以證明
n=d∣n∑φ(d)。
下面是一個我理解的很不正經的證明:
列出以 n為分母的所有分數: n1,n2,...,nn。
可以理解 φ(b)表示的是以 b為分母的最簡真分數的個數。
ba(a<b)為最簡分數,當且僅當 b∣n且 (a,b)=1。
你仔細地想, d∣n∑φ(d)就表示出了 n1,n2,...,nn,於是 n=d∣n∑φ(d)。
嘗試遞推
∴n=φ(n)+d∣n,d<n∑φ(d)
∴φ(n)=n−d∣n,d<n∑φ(d)
∴f(n)=i=1∑n⎝⎛i−d∣i,d<i∑φ(d)⎠⎞
∴f(n)=i=1∑ni−i=1∑nd∣i,d<i∑φ(d)=2n(n+1)−i=1∑nd∣i,d<i∑φ(d)
i=1∑nd∣i,d<i∑φ(d),算貢獻,則可以等價為:
d=1∑ni=1∑⌊dn⌋φ(d)=d=1∑n(⌊dn⌋⋅φ(d)),下面這個圖可以幫助理解,但我無法言說:
(其中
k=⌊dn<
相關推薦
【51nod】尤拉函式之和(數論,杜教篩)
文章目錄 題目 分析 一個性質 嘗試遞推 分塊 打表 線性篩尤拉函式 一個性質 線性篩 程式碼 題目 12
2018.12.17【BZOJ4802】尤拉函式(Pollard-Rho)
傳送門 解析: 對於 n = ∏
【bzoj4802】尤拉函式
題目連結 想瞎搞過去的可能就只有我一個。。。。。 正解Pollard_rho演算法(啥rho演算法?) Pollard_rho演算法是專門解決這類大數質因數分解的,當然還要搭配Miller_Rabin判素數(推薦一篇入門博文) 先質因數分解,然後按 φ(i
【模板】尤拉函式
#include <iostream> using namespace std; int n; int ans; int main() { cin >> n; int last = ans = n; for(int i = 2; i * i <= n; i+
【複習】尤拉函式
首先讓我們來複習以下尤拉函式的概念。 寫作\(phi(i)\),表示小於\(i\)的與\(i\)互質的數的個數 特殊的,\(phi(1)=1\); 根據定義我們可以得到其推導方法。 對於任意的\(i∈[2,INF]\),\(i\)都可以被拆分為\(p1^{c1}*p2^{c2}*..
【演算法】尤拉函式——小於n的數中與n互質數的數目
尤拉函式 簡介 在數論,對正整數n,尤拉函式是小於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名(Ruler’so totient function),它又稱為Euler’s totient function、φ函式、尤拉商數等。 例如φ(8)=4
【SPOJ】NUMOFPAL - Number of Palindromes(Manacher,回文樹)
spa cstring stream char define tdi () .so code 【SPOJ】NUMOFPAL - Number of Palindromes(Manacher,回文樹) 題面 洛谷 求一個串中包含幾個回文串 題解 Manacher傻逼題 只是用
【BZOJ2437】【NOI2011】兔兔與蛋蛋(博弈論,二分圖匹配)
路徑 gis 空格 都是 tps 找不到 oid AR 中移動 【BZOJ2437】【NOI2011】兔兔與蛋蛋(博弈論,二分圖匹配) 題面 BZOJ 題解 考慮一下暴力吧。 對於每個狀態,無非就是要考慮它是否是必勝狀態 這個直接用\(dfs\)爆搜即可。 這樣子對於每一次
【“盛大遊戲杯”第15屆上海大學程式設計聯賽 J】【尤拉函式 約數尤拉函式之和為本身】
膜一下將帶給你好運 釋出時間: 2017年7月9日 18:17 最後更新: 2017年7月9日 21:05 時間限制: 1000ms 記憶體限制: 128M 描述 尤拉函式ϕ(n)被定義1~n中與n互質的數的個數。例如ϕ(5)=4,因為1,2,3,4
【模板】尤拉篩法(線性篩法)
1 int n; 2 int p[MAX_N], cnt; 3 bool b[MAX_N]; 4 5 void Euler() 6 { 7 b[0] = b[1] = 1; 8 for(register int i = 2; i <= n; ++i) 9
【模板】尤拉定理(洛谷P5091)
https://ouuan.blog.luogu.org/solution-p5091 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using
【數論】尤拉函式
尤拉函式 在數論,對正整數n,尤拉函式是小於n的正整數中與n互質的數的數目(φ(1)=1)。此函式以其首名研究者尤拉命名(Euler'so totient function),它又稱為Euler's totient function、φ函式、尤拉商
BZOJ4916 神犇和蒟蒻(尤拉函式+杜教篩)
第一問是來搞笑的。由尤拉函式的計算公式容易發現φ(i2)=iφ(i)。那麼可以發現φ(n2)*id(n)=Σd*φ(d)*(n/d)=nΣφ(d)=n2 。這樣就有了杜教篩所要求的容易算字首和的兩個函式。一通套路即可。 #include<iostream> #include<c
【LeetCode】633. 平方數之和(Sum of Square Numbers)
【 英文練習 | 中文練習 】 題目描述: 給定一個非負整數 c ,你要判斷是否存在兩個整數 a 和 b,c 等於 a 和 b 的平方和。 示例: 輸入: 5 輸出: True 解釋: 1 * 1 + 2 * 2 = 5 解法一: 利用雙指標的思想,需要注意兩個坑點,一
【bzoj4804】尤拉心算 解題報告
【bzoj4804】尤拉心算 Description 給出一個數字\(N\),計算 \[\sum_{i=1}^n\sum_{j=1}^n \varphi(\gcd(i,j))\] Input 第一行為一個正整數\(T\),表示資料組數。 接下來\(T\)行為詢問,每行包含一個正整數\(N\)。 \(
【JavaScript高階】7、函式高階(作用域與作用鏈)
一、作用域 1. 理解 * 就是一塊"地盤", 一個程式碼段所在的區域 * 它是靜態的(相對於上下文物件), 在編寫程式碼時就確定了 2. 分類 * 全域性作用域 * 函式作用域 * 沒有塊作用域(ES6有了) 3. 作用 * 隔離變數,不同作用域下同名變數不會
【數學】尤拉恆等式:史上最完美的數學公式,沒有之一!
萊昂哈德·尤拉是18世紀最偉大的數學家之一,也是人類歷史上最傑出的數學家之一。作為一個多產的數學家,尤拉貢獻不可估量,他提出了許多對現代數學不可或缺的概念。在尤拉的一生中,它出版了885份關於關於數學和其他學科的論文和書籍。即使是後來失明瞭,他仍然筆耕不輟。尤拉在失明之後還
【TensorFlow】Numpy常用函式彙總(附原始碼)
以下內容是我在學習Numpy時,寫的例項,每一個模組都可以執行,並比較不同函式之間的差別。import numpy as np#dtype 定義numpy的儲存型別(np.int np.float),預設是64'''#定義矩陣格式'''
【總結】積性函式字首和(杜教篩)
前言: 據CCH和LJH說,杜教篩似乎是一個非常套路的東西,幾乎所有的杜教篩的題目推理方式都是一模一樣的(但實測有些推理還是很噁心的)。所以複習杜教篩不需要太多時間,粗略看一遍,留下印象即可。 杜教篩其實是一種簡化運算的推理方式,它的使用條件並不僅限於積
尤拉函式模板(acm筆記)
直接轉載過來,寫的很好 尤拉函式模板(求1~N之間與N互質的數的個數)包括1 也可以用打表的方法寫 #include <iostream> #include <cmath&g