1. 程式人生 > >hiho 1298 數論·五 尤拉函式 (尤拉函式篩選板子)

hiho 1298 數論·五 尤拉函式 (尤拉函式篩選板子)

描述

小Hi和小Ho有時候會用密碼寫信來互相聯絡,他們用了一個很大的數當做金鑰。小Hi和小Ho約定了一個區間[L,R],每次小Hi和小Ho會選擇其中的一個數作為金鑰。

小Hi:小Ho,這次我們選[L,R]中的一個數K。

小Ho:恩,小Hi,這個K是多少啊?

小Hi:這個K嘛,不如這一次小Ho你自己想辦法算一算怎麼樣?我這次選擇的K滿足這樣一個條件:

假設φ(n)表示1..n-1中與n互質的數的個數。對於[L,R]中的任意一個除K以外的整數y,滿足φ(K)≤φ(y)且φ(K)=φ(y)時,K<y。

也即是K是[L,R]中φ(n)最小並且值也最小的數。

小Ho:噫,要我自己算麼?

小Hi:沒錯!

小Ho:好吧,讓我想一想啊。

<幾分鐘之後...>

小Ho:啊,不行了。。感覺好難算啊。

小Hi:沒有那麼難吧,小Ho你是怎麼算的?

小Ho:我從列舉每一個L,R的數i,然後利用輾轉相除法去計算[1,i]中和i互質的數的個數。但每計算一個數都要花好長的時間。

小Hi:你這樣做的話,時間複雜度就很高了。不妨告訴你一個巧妙的演算法吧:

輸入

第1行:2個正整數, L,R,2≤L≤R≤5,000,000。

輸出

第1行:1個整數,表示滿足要求的數字K

相關推薦

hiho 1298 數論· 函式 函式篩選板子

描述 小Hi和小Ho有時候會用密碼寫信來互相聯絡,他們用了一個很大的數當做金鑰。小Hi和小Ho約定了一個區間[L,R],每次小Hi和小Ho會選擇其中的一個數作為金鑰。 小Hi:小Ho,這次我們選[L,R]中的一個數K。 小Ho:恩,小Hi,這個K是多少啊? 小Hi:這個K嘛,不如這一次小Ho你自己想辦法

HIHO #1298 : 數論·函式

題目連結 #include<bits/stdc++.h> using namespace std; #define cl(a,b) memset(a,b,sizeof(a)) #defin

hihor 學習日記:hiho一下 第十一週

http://hihocoder.com/contest/hiho51/problem/1 思路: 可以把輪盤的轉換成成一張圖,圖由 2

hihor 學習日記:hiho一下 第十二週 割邊與割點

http://hihocoder.com/contest/hiho52/problem/1 題意: 這道題就是求割邊與割點, 割邊與割點 思路: 大致就是用DFS樹來得到low,與dfn比較來判斷當前點的子樹上的點是否與當前點的父點相連,如果不聯,那麼去掉當前點

數論】The Super Powers 英語+log函式使用

題目連結: We all know the Super Powers of this world and how they manage to get advantages in political warfare or even in other sectors. B

hihor學習日記:hiho一下 第十七週高斯消元

http://hihocoder.com/contest/hiho57/problem/1 高斯消元的變種,因為圖很小所以而且每一個小格子都得為1,那麼就把圖中對某個小格子有作用的點標記起來,而他們的共同作用次數為奇數的話,小格子的狀態變化,反之不變, 注意這裡在處理矩陣時,對於第

演算法學習->降冪+快速冪

一、尤拉函式 尤拉函式是用來求n的質因數的個數。 ll ouler(ll n){ ll ans=n,a=n; for(ll i=2;i*i<=a;i++){

降冪-費馬定理

map<ll,ll> map_phi; ll get_phi(ll n) { ll res = n,a = n; for(ll i = 2;i * i <= n;++i){ if(a % i == 0){

定理 、擴充套件定理降冪原理證明

(所有^為次方) 尤拉定理: 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不同樣

50LINUX應用編程和網絡編程之 Linux信號進程間通信

sign 變量類型 {0} 退出 指向 示例 div 失效 key 信號實現進程間的通信 3.5.1.什麽是信號 3.5

無向圖歐道路回路的判定與路徑打印

clu clas 檢查 names 連通圖 思路 return space 計算 歐拉道路描述的是無向圖的一個頂點出發的一條道路能夠經過每條邊恰好一次 歐拉回路指的是任意點出發都滿足上述性質 如果一個圖是歐拉道路或者歐拉回路,必須滿足兩個條件 第一個條件,這個圖是連通圖 第

寫給年前的自己軟件測試工程師總結

是否一致 索引表 易懂 mil 測試方法 錯誤信息 捕獲 ros 軟件測試 五年前,偶然機會進入測試行業,那個時候,實習什麽都不懂,特別羨慕有三五年測試經驗的人,想著,等自己也有五年經驗了,也要像博客園的大神一樣,給初入測試行業的同學一些有用的建議和指導,如今

周動手動腦2018.10.15-10.21

自定義 兩種 靜態方法 不同的 div 演示 觀察 val ima 問題一: 早期經常這樣定義變量:int value=100; 前面的這樣定義:myclass obj=new myclass(); 這兩種方式定義的變量是一樣的嗎? 答:當聲明一個對象類型的變量時,實際上並

雜湊函式雜湊函式,Hash Function

說明          雜湊的概念屬於查詢,它不以關鍵字的比較為基本操作,採用直接定址技術。在理想情況下,查詢的期望時間為O(1)。 簡單的說,hash函式就是把任意長的輸入字串變化成固定長的輸出字串的一種函式。輸出

過載++運算子為成員函式日期類函式設計也可以看一下

//這篇程式碼比較長建議貼上下來到dev裡面用左邊的+-把部分函式收起來一條條的開啟看 不容易亂 #include <iostream> using namespace std; class Date{ private: int year,month,day;//年月日 b

對稱加密演算法常用的種分組模式ECB/CBC/CFB/OFB/CTR

版權宣告:本文為作者原創,如需轉載,請註明出處 https://blog.csdn.net/weixin_42940826 注:以下圖片來自於《圖解密碼學》,這本書講的更全面細緻,建議閱讀,在我資源庫中有此書,還有使用go語言具體實現和解釋此書中的各種加密演算法的文件,有需要的可以自

虛解構函式派生類與基類

1.情況1, class Base { public: ~Base() { cout << "~Base()" << endl; } }; class Derived1 : public Base { public: Derived1():name_

JavaScript函式內建函式,變數詳解

JavaScript函式(內建函式),變數詳解                                   &nb

迪傑斯特演算法可列印最短路徑資料結構題集C語言版7.11

轉自 https://blog.csdn.net/cxllyg/article/details/7604812   #include <iostream> #include <iomanip> #include <string> usi

C/C++ 函式求一元二次方程的根

題目描述 求一元二次方程ax^2+bx+c=0的根。 輸入 方程的三個係數a、b、c的值。 輸出 方程的根。 樣例輸入 4 1 1 1 2 1 1 1 -2 樣例輸出 x1=-0.125+0.484i x2=-0.125-0.484i x1=x2=-1.00