題解 luogu P2568 GCD

題解 luogu P2568 GCD

時間:2019.3.11

歐拉函數+前綴和

題目描述

給定整數\(N\),求\(1\le x,y \le N\)\(\gcd(x,y)\)為素數的數對\((x,y)\)有多少對.

分析

枚舉素數\(p\), 先求出\(1\le x,y \le \left \lfloor \dfrac n p \right \rfloor\)\(\gcd(x, y) = 1\)的數對\((x,y)\)有多少對,然后再將\(x,y\)同時乘以\(p\)即可.

不妨欽定\(x \le y\),如果知道了\(y\),那么\(x\)的數量就是\(\varphi(y)\)\(\text{phi(y)}\))個。對于\(x \ge y\)同理。

注意數對\((1, 1)\)會被計算兩次,答案要減一。

1538275-20190311140949850-1663342725.png

代碼

#include <bits/stdc++.h>
using namespace std;
const int kMaxN = 10000000 + 10;
typedef long long LL;
bool is_prime[kMaxN];
int phi[kMaxN];
int prime[kMaxN], top;
int n;
long long ans, phi_sum[kMaxN];
void Sieve() {memset(is_prime, true, sizeof(is_prime));top = 0;phi[1] = 1;for (int i = 2; i <= n; i++) {if (is_prime[i]) {prime[++top] = i;phi[i] = i - 1;}for (int j = 1; j <= top && 1ll * i * prime[j] <= n; j++) {int p = prime[j];is_prime[i * p] = false;phi[i * p] = phi[i] * (i % p ? p - 1 : p);if (i % p == 0) break;}}
}
int main() {scanf("%d", &n);Sieve();for (int i = 1; i <= n; i++) {phi_sum[i] = phi_sum[i - 1] + phi[i];}for (int i = 1; i <= top; i++) {ans += phi_sum[n / prime[i]] * 2 - 1;}printf("%lld\n", ans);return 0;
}

轉載于:https://www.cnblogs.com/longlongzhu123/p/10510275.html

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

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

相關文章

解決前后臺發送請求或者接口之間發送請求亂碼的問題

前后臺傳中文亂碼&#xff1a; 前臺使用encodeURI 進行編碼 后臺使用decode進行解碼 如果接口之間調用出現亂碼.接收方是&#xff1f;&#xff1f;&#xff1f;&#xff1f;這種。傳送方式明文的處理方式&#xff1a; 發送方使用decode 進行編碼&#xff1a; 接收方使用的ecod…

MSDN幫助文檔 無法顯示該網頁 的問題解決方案(轉)

MSDN幫助文檔 "無法顯示該網頁" 的問題解決方案 以前就遇到過這樣的問題&#xff0c;還以為是IE7導致的。后來重新安裝了IE7也沒有解決。后來就重新安裝MSDN了&#xff0c;非常郁悶。今天終于知道原因了。因為開了HijackThis刪除了一些注冊協議&#xff0c;然后發現M…

.net Core發布至IIS完全手冊帶各種踩坑

服務器環境配置 和各位大爺報告一下我的服務器環境 : Windows Server 2012 iis 8 小插曲開始: 運維大哥在昨天給了我一臺新的server 0環境開始搭建 。 并且沒有安裝任何的系統補丁。 第一件事情請開始打 補丁 打完補丁之后有時補丁會不完全 ,所以需要去官網獲取補丁: KB2919355…

Unity --- MeshRenderer之網格合并

創建如圖所示的對象結構,parent為空對象&#xff0c;然后將下面的代碼掛載到parent對象上運行即可。 1 using UnityEngine;2 using System.Collections;3 4 public class CombineMeshAndMaterials : MonoBehaviour5 {6 void Start()7 {8 CombineMesh();9 }…

css 盒模型的屬性

1、盒模型 2、display 3、浮動轉載于:https://www.cnblogs.com/Tang854416/p/9676424.html

前后端分離

、前后端分離的好處 &#xff08;1&#xff09;徹底解放前端 &#xff08;2&#xff09;提高工作效率&#xff0c;分工更加明確。 &#xff08;3&#xff09;局部性能提升 &#xff08;4&#xff09;降低維護成本 2、前后端分離的概念 后臺只需要提供API接口&#xff0c;…

Win10還原被Windows Defender隔離的文件

Win10最新版本的Windows Defender隔離/刪除的文件沒有還原的選項&#xff0c;導致很多破解文件或是注冊機直接隔離&#xff0c;到威脅歷史記錄中去卻無法恢復。經過各個嘗試&#xff0c;到微軟官方論壇中也嘗試了很多方法&#xff0c;后來發現竟然恢復啦。各位小伙伴可以試試這…

AtCoder Grand Contest 013 題解

A - Sorted Arrays 貪心&#xff0c;看看不下降和不上升最長能到哪&#xff0c;直接轉移過去即可。 1 //waz2 #include <bits/stdc.h>3 4 using namespace std;5 6 #define mp make_pair7 #define pb push_back8 #define fi first9 #define se second 10 #define ALL(x…

servlet架構解析

https://www.jianshu.com/p/d433b5fb87e2

(Review cs231n) Backpropagation and Neural Network

損失由兩部分組成&#xff1a; 數據損失正則化損失&#xff08;data loss regularization&#xff09; 想得到損失函數關于權值矩陣W的梯度表達式&#xff0c;然后進性優化操作&#xff08;損失相當于海拔&#xff0c;你在山上的位置相當于W&#xff0c;你進行移動&#xff0c…

springboot restful

https://www.jianshu.com/p/733d788ea94d

【計算機算法設計與分析】——排序

一.排序 二.插入排序 &#xff08;1&#xff09;算法描述 &#xff08;2&#xff09;性能分析 &#xff08;3&#xff09;尋求優化 三.歸并排序 &#xff08;1&#xff09;算法思想 &#xff08;2&#xff09;性能分析 &#xff08;2&#xff09;示例 &#xff08;3&#xff09…

QT 隨機數生成

下面總結了QT中隨機生成的方法&#xff08;僅供學習參考&#xff09;&#xff0c;分為舊方法和新方法&#xff0c;一般來說&#xff0c;舊的方法已經被拋棄&#xff0c;在開發新的應用中推薦使用新方法。 C Code 123456789101112131415161718192021222324#include <QCoreApp…

獲取/設置IFRAME內對象元素的幾種JS方法

獲取/設置IFRAME內對象元素的幾種JS方法 iframe瀏覽器ie文檔微軟&#xff11;。IE專用(通過frames索引形象定位)&#xff1a; document.frames[i].document.getElementById(元素的ID); &#xff12;。IE專用(通過IFRAME名稱形象定位)&#xff1a; document.frames[iframe的name…

高并發

https://blog.csdn.net/java_xth/article/details/81162088

多人游戲服務器

https://www.getmangos.eu/轉載于:https://www.cnblogs.com/aibox222/p/9682697.html

Hbase 各個角色的工作。

HMaster的作用&#xff1a; 為region server 分配region&#xff1b;負責region server的負載均衡&#xff0c;region分裂完成監控&#xff1b;處理schema更新請求&#xff0c;數據表的創建&#xff0c;更新&#xff1b;HDFS上的垃圾文件回收&#xff1b;發現失效的region serv…

Activiti中的關于子流程中的并發節點標記處理

最近在研究一個輕量級的工作流引擎Activiti&#xff0c;就遇到了子流程中無法標記其并發節點的問題&#xff0c;經過幾天的研究&#xff0c;想到了一個簡單易懂的方法&#xff0c;總結如下&#xff0c;希望對你們能有所幫助&#xff0c;有寫的不對的地方&#xff0c;還希望大家…

[WPF 基礎知識系列] —— 綁定中的數據校驗Vaildation

[WPF 基礎知識系列] —— 綁定中的數據校驗Vaildation 原文:[WPF 基礎知識系列] —— 綁定中的數據校驗Vaildation前言&#xff1a; 只要是有表單存在&#xff0c;那么就有可能有對數據的校驗需求。如&#xff1a;判斷是否為整數、判斷電子郵件格式等等。 WPF采用一種全新的方式…

ModuleNotFoundError: No module named 'win32api'

啟動一個工程的cmd&#xff1a; scrapy crawl HI 如果 運行報 No module named “win32api” 要安裝 pip install pypiwin32 這個包轉載于:https://www.cnblogs.com/hailong88/p/10528618.html