《洛谷深入浅出进阶篇》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.mzph.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;并提升网站的曝光度和可见…