歐拉函數.

性質1:質數n的歐拉函數為n-1.

性質2:如果p,q都是質數,那么? ( p ? q ) = ? ( p ) ? ? ( q ) = ( p ? 1 ) ? ( q ? 1 )

????????證明:p,2p....q*p都不與q*p互質,q同理,所以總的不互質個數應該是p+q-1,所以? ( p ? q )=p*q-(p+q-1)=(p-1)*(q-1)。

性質3:如果p是質數,那么\Phi (p^{k})=p^{k}-p^{k-1}

? ? ? ? 證明:同性質2,p,p*2....p^{k},因為p要乘以p^{k-1}才到p^{k},所以一共有p^{k-1}個數。

性質4:對任意正整數n=p_1{}^{m1}*p_2{}^{m2}...p_k{}^{mk},就是將其素數冪分解,\Phi (n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})...(1-\frac{1}{p_k})

????????證明:由性質2和性質3進行拆分,對于單個\Phi (p^{k})=p^{k}-p^{k-1}提取p^{k}變成p^{k}*(1-\frac{1}{p})

最后變成p_1{}^{m1}*p_2{}^{m2}...p_k{}^{mk}*(1-\frac{1}{p_1{}})*(1-\frac{1}{p_2})*...(1-\frac{1}{p_k}),前面那些項的積等于n

性質5:若a為質數,b mod a=0(b是a的倍數),? ( a ? b ) = ? ( b ) ? a?

const int Maxn=1e7;
int phi[Maxn];//記錄數的約數個數(歐拉函數) 
bool vis[Maxn];//記錄數字是否訪問 
int prime[Maxn];//保存素數 vis[1]=1;//1不是素數 for(int i=2;i<=n;i++){if(!vis[i])//沒有被訪問,也就是沒有被篩掉,說明是素數 {vis[i]=!vis[i];prime[++prime[0]]=i;phi[i]=i-1;}for(int j=1;j<=prime[0]&&i*prime[j]<=n;j++){vis[i*prime[j]]=true;if(i%prime[j]==0)//a%b==0,那么phi[a*b]=b*phi[a] {phi[i*prime[j]]=phi[i]*prime[j];break;}else phi[i*prime[j]]=phi[i]*(prime[j]-1);//兩者互素 }}

題目鏈接

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define fi first
#define se second
const ll mod=998244353;
const int Maxn=2e5+10;int phi[Maxn];//記錄數的約數個數(歐拉函數) 
bool vis[Maxn];//記錄數字是否訪問 
int prime[Maxn];//保存素數
void init(){vis[1]=1;//1不是素數 phi[1]=1;for(int i=2;i<=Maxn;i++){if(!vis[i])//沒有被訪問,也就是沒有被篩掉,說明是素數 {vis[i]=!vis[i];prime[++prime[0]]=i;phi[i]=i-1;}for(int j=1;j<=prime[0]&&i*prime[j]<=Maxn;j++){vis[i*prime[j]]=true;if(i%prime[j]==0)//a%b==0,那么phi[a*b]=b*phi[a] {phi[i*prime[j]]=phi[i]*prime[j];break;}else phi[i*prime[j]]=phi[i]*(prime[j]-1);//兩者互素 }}
} 
void solve(){init();int n;cin>>n;ll ans=0;for(int i=1;i<n;i++){ans+=phi[i]*2;}cout<<ans+1;
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t=1;//cin>>t;while (t--){solve();}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42726.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaEE初階-網絡編程

文章目錄 前言一、UDP與TCP1.1 有連接與無連接1.2 全雙工1.3 可靠傳輸與不可靠傳輸1.4 面向子節流與面向數據報 二、UDP回顯服務器及客戶端編寫三、UDP字典服務器四、TCP回顯服務器及客戶端編寫五、數據序列化的方式5.1 基于行文本的方式傳輸5.2 基于XML的格式5.3 基于json5.4 …

STM32芯片系列與產品后綴解讀

一. 產品系列 STM32單片機是一系列基于ARM Cortex-M內核的32位微控制器&#xff0c;廣泛應用于嵌入式系統中。 STM32系列由STMicroelectronics&#xff08;意法半導體&#xff09;開發和生產&#xff0c;并憑借其靈活的設計、豐富的外設和強大的生態系統&#xff0c;成為嵌入式…

咬文嚼字:詞元是當今生成式人工智能失敗的一個重要原因

生成式人工智能模型處理文本的方式與人類不同。了解它們基于"標記"的內部環境可能有助于解釋它們的一些奇怪行為和頑固的局限性。從 Gemma 這樣的小型設備上模型到 OpenAI 業界領先的 GPT-4o 模型&#xff0c;大多數模型都建立在一種稱為轉換器的架構上。由于轉換器在…

Ubuntu24.04清理常見跟蹤軟件tracker

盡量一天一更&#xff0c;不刷視頻&#xff0c;好好生活 打開系統監視器&#xff0c;發現開機有個tracker-miner-fs-fs3的跟蹤程序&#xff0c;而且上傳了10kb的數據。 搜索知&#xff0c;該程序會搜集應用和文件的信息。 刪除tracker 顯示帶tracker的apt程序 sudo apt lis…

ThreadLocal的內存泄漏

什么是內存泄漏 程序在申請內存后&#xff0c;無法釋放已申請的內存空間在定義變量時&#xff0c;需要一段內存空間來存儲數據信息&#xff0c;而這段內存如果一直不被釋放&#xff0c;那么就會導致內存被占用光&#xff0c;而被占用的這個對象&#xff0c;一直不能被回收掉&am…

書生·浦語2.5開源,推理能力再創新標桿

導讀 2024 年 7 月 3 日&#xff0c;上海人工智能實驗室與商湯科技聯合香港中文大學和復旦大學正式發布新一代大語言模型書?浦語2.5&#xff08;InternLM2.5&#xff09;。相比上一代模型&#xff0c;InternLM2.5 有三項突出亮點&#xff1a; 推理能力大幅提升&#xff0c;在…

VUE與React的生命周期對比

前言 在前端開發中&#xff0c;Vue和React是兩個非常流行的JavaScript框架&#xff0c;它們各自有著獨特的生命周期機制。了解并熟練掌握這些生命周期&#xff0c;對于開發高效、可維護的前端應用至關重要。本文將詳細對比Vue和React的生命周期&#xff0c;幫助開發者更好地理…

Python | Leetcode Python題解之第222題完全二叉樹的節點個數

題目&#xff1a; 題解&#xff1a; # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def countNodes(self,…

好玩的珠璣妙算-加作弊帶概率空間+日志存儲240705mindMaster

Python代碼 import random import time import datetimeNUM_DIGITS 10 #NUM_NON_ZERO_DIGITS 9failFlag 0class Mastermind:def __init__(self, code_length, max_attempts, secret01code, game_id): # def __init__(self, code_length, max_attempts):self.code_length…

【Elasticsearch】Elasticsearch倒排索引詳解

文章目錄 &#x1f4d1;引言一、倒排索引簡介二、倒排索引的基本結構三、Elasticsearch中的倒排索引3.1 索引和文檔3.2 創建倒排索引3.3 倒排索引的存儲結構3.4 詞典和倒排列表的優化 四、倒排索引的查詢過程4.1 過程4.2 示例 五、倒排索引的優缺點5.1 優點5.2 缺點 六、倒排索…

【Excel】求和帶文字的數據

目錄標題 1. 給出樣例2. CtrlE3. CtrlH → A替換為 → 全部替換 1. 給出樣例 2. CtrlE 3. CtrlH → A替換為 → 全部替換

算法期末函數題

R6-1 可重復選擇的組合數問題 【考核知識點】可重復選擇的組合計數 【問題描述】 有n個不同元素&#xff08;1<n<20&#xff09;&#xff0c;每個元素可以選多次&#xff0c;一共需要選出k個元素出來&#xff08;1<k<20&#xff09;&#xff0c;問有多少種選取的…

監控易V7.6.6.15升級詳解2:設備管理功能

隨著企業IT架構的日益復雜&#xff0c;對設備管理的需求也在不斷提升。為了滿足廣大用戶對于設備管理的高效、精準需求&#xff0c;我們榮幸地宣布監控易系統已完成了一次重要的版本升級。本次升級不僅優化了原有功能&#xff0c;還新增了一系列實用特性&#xff0c;旨在為用戶…

仿qq音樂播放微信小程序模板源碼

手機qq音樂應用小程序&#xff0c;在線音樂播放器微信小程序網頁模板。包含&#xff1a;音樂歌曲主頁、推薦、排行榜、搜索、音樂播放器、歌單詳情等。 仿qq音樂播放微信小程序模板源碼

【ubuntu自啟shell腳本】——在ubuntu中如何使用系統自帶的啟動應用程序設置開機自啟自己的本地shell腳本

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、設置開機自啟shell腳本1.使用 gnome-session-properties2.測試的shell例程代碼 總結 前言 在Ubuntu系統中設置開機自啟腳本是一種重要的自動化方法。開機自…

YOLO-World實時開集檢測論文閱讀

論文&#xff1a;《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代碼&#xff1a;https://github.com/AILab-CVC/YOLO-World 1.Abstract 我們介紹了YOLO World&#xff0c;這是一種創新的方法&#xff0c;通過在大規模數據集上進行視覺語言建模和預訓練&#…

js之彈性布局使用方法

彈性布局&#xff08;Flexbox&#xff09;是一種現代化的 CSS 布局方法&#xff0c;它可以讓您更方便地創建響應式和動態布局。在本篇文檔中&#xff0c;我們將介紹彈性布局的基本概念以及如何在項目中使用它。 一、基本概念 容器&#xff08;Container&#xff09;&#xff…

WPF中邏輯樹和視覺樹

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;“邏輯樹”&#xff08;Logical Tree&#xff09;和“可視樹”&#xff08;Visual Tree&#xff09;是兩個重要的概念&#xff0c;它們代表了不同的對象層次結構&#xff0c;用于描述應用程序的組織…

洛谷 [SNCPC2024] 寫都寫了,交一發吧 題解

分析 顯然&#xff0c;兩個相同的數去按位與的結果還是該數。 由于一個代碼可以提交多次&#xff0c;那么可以把得分最高的代碼提交兩次&#xff0c;這樣的得分就是這個代碼的得分&#xff0c;很明顯&#xff0c;這樣是最優的。 Code #include<iostream> using names…

STM32微控制器的SPI存儲解決方案:W25Q64 Flash存儲器深度應用

摘要 在嵌入式系統設計中&#xff0c;存儲解決方案對于數據的持久化至關重要。W25Q64 Flash存儲器以其高效的存儲能力和與SPI總線的兼容性&#xff0c;成為STM32微控制器項目中的優選。本文將深入探討STM32微控制器的SPI存儲解決方案&#xff0c;重點介紹W25Q64 Flash存儲器的…