《洛谷深入淺出進階篇》p2568 GCD

P2568 GCD - 洛谷 | 計算機科學教育新生態 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P2568

大致題意:給定正整數n,求1<= x,y<=n 且 gcd(x,y)為素數的數對(x,y)有多少對。(n<=10^7)

思路:不如找n以內的所有的素數,然后統計每一個素數,是哪些數的最大公約數。

假設gcd(x,y)=p,設x=tp,y=rp;則 t與r必然互質。

由于x,y<=n,那么? t,r<=n/p。

所以,假設r更大,那么我們只要求1~r中與r互素的數字有多少個。

也就是求\psi\left(k \right )。然后將\psi\left(k \right )*2 ,

由于可以取遍1~n/p,

別忘了r=1,t=1,的時候也算了兩遍,所以

對于任意一個1~n的質數,其總方案就是:2*\sum_{i=1}^{n/p}\psi\left(i \right )-1

最終的答案就是\sum_{t=1}^{tot}(2*\sum_{i=1}^{n/p_{t}}(\psi\left(i \right ))-1

所以我們只需要用篩法求歐拉函數,同時求它的前綴和,

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<cctype>
#include<map>
#include<set>
#include<queue>
#include<numeric>
#include<iomanip>using namespace std;
const int N = 1e7 + 7;
int pri[N], phi[N], flag[N];  // 質數表, 歐拉函數 , 標記函數
long long sumphi[N];  // 前綴和數組
int tot;// 有多少個質數
int main() {int n;cin >> n;phi[1] = sumphi[1] = 1;  //預處理 1 的情況for (int i = 2; i <= n; i++) {if (flag[i] == 0) {   //套線性篩的板子pri[tot++] = i;phi[i] = i - 1;   }sumphi[i] = sumphi[i - 1] + phi[i];    //處理前綴和for (int j = 0; j < tot and pri[j] * i <= n; j++) {  flag[i * pri[j]] = 1;if (i % pri[j] == 0) {phi[i * pri[j]] = pri[j] * phi[i];break;}else {phi[i * pri[j]] = (pri[j] - 1) * phi[i];}}}long long ans = 0;for (int i = 0; i < tot; i++) {ans += sumphi[n / pri[i]] * 2 - 1;}cout << ans;
}

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

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

相關文章

一文搞懂全連接算法和它的作用

如果你是搞AI算法的同學&#xff0c;相信你在很多地方都見過全連接層。 無論是處理圖片的卷積神經網絡&#xff08;CNN&#xff09;&#xff0c;還是處理文本的自然語言處理&#xff08;NLP&#xff09;網絡&#xff0c;在網絡的結尾做分類的時候&#xff0c;總是會出現一個全…

國外小哥綜合傳統CGI和AI技術制作出融合Lofi音樂與人工智能動畫作品

這個視頻制作花費了18個小時&#xff0c;渲染則耗費了4個小時&#xff0c;使用了Midjourney、PS GenFill、After Effects和Magnific AI等工具。 國外小哥綜合傳統CGI和AI技術制作出融合Lofi音樂與人工智能動畫作品 大致制作流程&#xff1a; Midjourney出圖&#xff0c;PS Gen…

P1047 [NOIP2005 普及組] 校門外的樹題解

題目 某校大門外長度為 l 的馬路上有一排樹&#xff0c;每兩棵相鄰的樹之間的間隔都是1 米。我們可以把馬路看成一個數軸&#xff0c;馬路的一端在數軸 00 的位置&#xff0c;另一端在l 的位置&#xff1b;數軸上的每個整數點&#xff0c;即0,1,2,…,l&#xff0c;都種有一棵樹…

藍橋杯:貨物擺放

小藍有一個超大的倉庫&#xff0c;可以擺放很多貨物。 現在&#xff0c;小藍有 n 箱貨物要擺放在倉庫&#xff0c;每箱貨物都是規則的正方體。小藍規定了長、寬、高三個互相垂直的方向&#xff0c;每箱貨物的邊都必須嚴格平行于長、寬、高。 小藍希望所有的貨物最終擺成一個大…

帶大家做一個,易上手的家常辣子雞

先從冰箱拿出雞肉解凍 拿小半根蔥 去掉最外面一層皮 切成小段 最備好 花椒 干辣椒 準備四五個大料 起鍋燒油 這道菜需要放其他菜兩到三倍的油 油溫上來之后 放入干辣椒和花椒進行翻炒 等它們都燒黑之后撈出來 這樣 辣味就留在油里面了 然后 倒入雞肉 蔥段 大料 然后 倒…

linux下ls和df卡死

1. strace看下卡在哪里 https://lokie.wang/article/43 strace ls strace df -h 2. 原因 https://segmentfault.com/a/1190000040620740 3. fuser 和 umount都不行&#xff0c;最后只能重啟 重啟機器還起不來了垃圾

Linux Server Quick Command

Linux Server Quick Command 查看服務器gpu情況&#xff1a;gpustat conda install gpustat nvidia-smi也可以監控 實時監控gpu狀態&#xff1a; 進入后臺運行&#xff1a;$ tmux &#xff08;tmux使用方法&#xff09; 退出當前窗口&#xff1a;先按下ctrlb&#xff0c;再按下…

php獲取本年、本月、本周時間戳和日期格式(2020)

獲取時間戳&#xff1a; //獲取今日開始時間戳和結束時間戳 $time1 strtotime(date(Y-m-d 00:00:00,time())); $time2 strtotime(date(Y-m-d 23:59:59,time()));//昨天時間戳 $time1 strtotime(date(Y-m-d 00:00:00,time()-3600*24)); $time2 strtotime(date(Y-m-d 23:59:…

Docker實戰筆記 一 Nginx鏡像

1.創建一個文件夾映射容器內文件 rootcenots-7.5:/home#mkdir demo rootcenots-7.5:/home#ll 2.拉取nginx鏡像 rootcenots-7.5:/home/demo#docker pull nginx Using default tag: latest latest: Pulling from library/nginx 1f7ce2fa46ab: Already exists 9b16c94bb686: P…

Qt內存管理、UI編輯器、客制化組件、彈出對話框、常用部件類

頭文件的小技巧 #include <QtWidgets> // 在自動生成的 .h 里面加上此句 適用條件&#xff1a; QT 的內存管理 當父窗體被關閉時&#xff0c;子部件的內存會自動釋放。 對象樹是一種管理對象生命周期的機制。當一個對象被添加到另一個對象的子對象列表中時&#xff0…

LeetCode刷題筆記之鏈表

一、移除鏈表元素 1. 203【移除鏈表元素】 題目&#xff1a; 給你一個鏈表的頭節點 head 和一個整數 val &#xff0c;請你刪除鏈表中所有滿足 Node.val val 的節點&#xff0c;并返回 新的頭節點 。代碼&#xff1a; /*** Definition for singly-linked list.* public cla…

docker:部署java Springboot項目

文章目錄 1、打 jar 包1、創建Dockerfile3、創建鏡像4、啟動容器其他注意事項docker中jdk的版本命名舉例&#xff1a;openjdk:11-ea-17-jre-slim舉例&#xff1a;8u312-jre-nanoserver-1809 通過find找文件 1、打 jar 包 將項目打一個 jar 包&#xff0c;可以使用 IDEA 1、…

2.6 A 的 LU 分解

一、A LU 線性代數很多關鍵的概念實際上就是矩陣的分解&#xff08;factorization&#xff09;。原始矩陣 A A A 變成兩個或三個特殊矩陣的乘積。第一個分解&#xff0c;實際上也是最重要的分解&#xff0c;來自消元法。因子 L L L 和 U U U 都是三角形矩陣&#xff0c;分…

前端實習面試常考(定位、文檔流)

前端實習面試常考&#xff08;定位、文檔流&#xff09; 最近在找前端的實習&#xff0c;看了很多面試題&#xff0c;再這里做一個總結分享給大家&#xff0c;希望對大家的實習面試起到一些幫助&#xff08;本人剛入門不久&#xff0c;如果大家對我的內容有異議&#xff0c;歡…

NgRx中dynamic reducer的原理和用法?

在 Angular 應用中&#xff0c;使用 NgRx 狀態管理庫時&#xff0c;動態 reducer 的概念通常是指在運行時動態添加或移除 reducer。這樣的需求可能源于一些特殊的場景&#xff0c;比如按需加載模塊時&#xff0c;你可能需要添加相應的 reducer。 以下是動態 reducer 的一般原理…

多級路由component頁面不加載

項目基于vue-element-admin 新建SubView.vue <template><router-view /> </template><script setup> </script>在父層添加component {path: /sj,component: Layout,redirect: /sj,name: 三級醫院評審標準(2022),meta: {title: 三級醫院評審標準(…

發布“最強”AI大模型,股價大漲,吊打GPT4的谷歌股票值得投資嗎?

來源&#xff1a;猛獸財經 作者&#xff1a;猛獸財經 谷歌在AI領域的最新進展&#xff0c;引發投資者關注 在谷歌-C(GOOGL)谷歌-A&#xff08;GOOG&#xff09;昨日發布了最新的AI大模型Gemini后&#xff0c;其股價就出現了大幅上漲&#xff0c;更是引發了投資者的密切關注&a…

Docker-compose容器編排與容器監控

一、Docker-compose 1、概念&#xff1a; Docker-Compose 是 Docker 官方的開源項目&#xff0c;負責實現對Docker容器集群的快速編排。 2、作用&#xff1a; Docker-Compose可以管理多個Docker容器組成一個應用。需要定義一個yaml格式的配置文件 docker-compose.yml&#…

CSS邏輯組合偽類

CSS 的邏輯組合偽類有 4 種&#xff0c;分別是&#xff1a;:not()、:is()、:where()和:has()。 否定偽類:not() 否定偽類&#xff0c;是在元素與括號里面的參數不匹配的時候&#xff0c;就會對這個偽類進行匹配。比如&#xff1a;:not(span):{color:red}&#xff0c;這就會匹…

SEO優化是什么,如何進行SEO優化

SEO&#xff08;Search Engine Optimization&#xff09;是指通過對網站進行優化&#xff0c;提高其在搜索引擎中的排名&#xff0c;從而增加有機流量和改善用戶體驗的一系列技術和方法。 進行SEO優化可以幫助網站獲得更多的有機搜索流量&#xff0c;并提升網站的曝光度和可見…