【Coding】寒假每日一题Day.5. 互质数的个数

news2024/11/16 12:27:13

题目来源

题目来自于AcWing平台:https://www.acwing.com/problem/content/4971/
以blog的形式记录程序设计算法学习的过程,仅做学习记录之用。

题目描述

在这里插入图片描述

输入输出格式与数据范围

在这里插入图片描述

样例

第一组:

2 5
16

第二组:

12 7
11943936

思路

思路一部分参考自闫总的视频讲解,一部分参考自题解:https://www.acwing.com/solution/content/191150/。
这道题是标准的模板题。求 1 1 1 N N N中与 N N N互质的数的个数称作欧拉函数,记为 ϕ ( N ) \phi(N) ϕ(N)。在算数基本定理中,可以将 N N N拆解为: N = p 1 a 1 p 2 a 2 ⋅ ⋅ ⋅ p m a m N=p_1^{a_1}p_2^{a_2}\cdot\cdot\cdot{p_m^{a_m}} N=p1a1p2a2pmam,则:
ϕ ( N ) = N × p 1 − 1 p 1 × p 2 − 1 p 2 . . . × p m − 1 p m \phi(N)=N\times{{p_1-1}\over{p_1}}\times{{p_2-1}\over{p_2}}...\times{{p_m-1}\over{p_m}} ϕ(N)=N×p1p11×p2p21...×pmpm1

可以发现,欧拉函数与质因数有关,而 a b a^b ab的质因数与 a a a完全相同,因此只需要求 a a a的质因数即可。

因此,套用求互质数个数的模板,求出 a a a的互质数的个数即可,再使用快速幂对这一结果乘上 a b − 1 a^{b-1} ab1,即可得到最终的答案。在进程乘法运算的过程中,不要忘记求模。

Code

代码同样参考自闫总的代码:https://www.acwing.com/activity/content/code/content/7589016/。

#include <algorithm>
#include <iostream>
#include <cstring>
using namespace std;

typedef long long LL;
const int MOD = 998244353;

LL qmi(LL a, LL b){ // 快速幂算法的模板
    LL res = 1;
    while(b){
        if(b & 1)   res = res * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    return res;
}

int main()
{
    LL a, b;
    cin >> a >> b;

    if(a == 1){
        cout << 0 << endl;
        return 0;
    }

    // 求质因数的个数的模板
    LL res = a, x = a;
    for(int i = 2; i * i <= x; i ++ ){
        if(x % i == 0){
            while(x % i == 0)   x /= i;
            res = res / i * (i - 1);
        }
    }
    if(x > 1)   res = res / x * (x - 1);

    cout << res * qmi(a, b - 1) % MOD << endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1402678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LINUX常用工具之sudo权限控制

一、Sudo基本介绍 sudo是Linux 中用于允许特定用户以超级用户或其他特权用户的身份执行特定的命令或任务。sudo 提供了一种安全的方法&#xff0c;使用户能够临时获取额外的权限&#xff0c;而不需要以完全超级用户的身份登录系统。sudo也可以用了设置黑名单命令清单&#xff…

实战 | SQL注入思路扩展

本文由掌控安全学院 - sbhglqy 投稿 一、资产搜集 我们都知道sql注入的传参有些是明文的&#xff0c;有些是经过编码或者加密的&#xff0c;所以我们搜索的时候不要仅限于inurl:.php?id1&#xff0c;可以额外的尝试搜搜1的base64编码值MQ&#xff0c;即可以搜索inurl:.php?…

万界星空科技MES系统的生产管理流程

对于生产型工厂来说&#xff0c;车间生产流程无疑是最重要的管理环节&#xff0c;繁琐的生产细节让企业很难找到合理的生产管理方法&#xff0c;导致人工效率低、错误多、成本高。如果想要解决这些问题&#xff0c;工厂就必须要有一套自己的生产管理系统&#xff0c;这样才能提…

(2021|ICLR,扩散先验,VE-SDE,逼真和忠实的权衡)SDEdit:使用随机微分方程引导图像合成和编辑

SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 背景&#xff1a;使用随机微分方程…

【HarmonyOS】体验鸿蒙电商平台的未来之旅!

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…

点燃航天热情,莞港澳青少年航天研学冬令营收获满满

为进一步促进港澳青少年深度了解祖国的最新发展&#xff0c;通过亲身体验增加对祖国的认识&#xff0c;增强对祖国的向心力。“筑梦航天&#xff0c;行进湾区”莞港澳青少年交流实践活动收官之作“航天研学冬令营”于1月20日在东莞成功举办。来自香港、澳门、广州、深圳、东莞各…

AI 欺诈事件频出,如何重塑身份认证的安全性?

据报告表示&#xff0c;生成式人工智能每年可为世界经济注入相当于 4.4 万亿美元的资金。预计到 2030 年&#xff0c;人工智能对全球财政的潜在贡献将达到 15.7 万亿美元。人们惊叹于 AI 强大工作效率&#xff0c;期待能帮忙节省不必要的劳动力&#xff0c;但事实上 AI 出现之后…

216. 组合总和 III - 力扣(LeetCode)

题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 输入示例 k 3, n 7输出示例 [[1,2,…

Allegro如何导入芯片的Pin Delay?

Allegro在做等长时,需要导入芯片的Pin Delay才能做真正的等长。因为有些芯片内部的引脚本身就是不等长的,例如海思的部分芯片。 那么如何导入芯片的Pin Delay呢? 1、打开约束管理器,点击Properties(属性)→Component(器件)→Pin Properties→General。 在右栏找到芯片U1,…

【Linux】第三十二站:命名管道

文章目录 一、命名管道介绍二、编码1.mkfifo2.unlink3.一个简单的例子4.修改 一、命名管道介绍 管道应用的一个限制就是只能在具有共同祖先&#xff08;具有亲缘关系&#xff09;的进程间通信。 如果我们想在不相关的进程之间交换数据&#xff0c;可以使用FIFO文件来做这项工作…

opencv009 滤波器01(卷积)

图像卷积操作&#xff08;convolution&#xff09;&#xff0c;或称为核操作&#xff08;kernel&#xff09;&#xff0c;是进行图像处理的一种常用手段&#xff0c; 图像卷积操作的目的是利用像素点和其邻域像素之前的空间关系&#xff0c;通过加权求和的操作&#xff0c;实现…

【服务器】Xshell与Xftp软件的使用指南

目录 【Xshell软件】 1.1 Xshell软件的功能 1.2 Xshell软件的使用 【Xftp软件】 2.1 Xftp软件的功能 2.2 Xftp软件的使用 可替代产品【FinalShell】 3.1 FinalShell软件的使用 3.2 FinalShell连接服务器失败解决方法 可替代产品【FileZilla】

VSCode无法下载插件,提示 Error while fetching extensions : XHR failed

解决方案&#xff1a; 打开vscode&#xff0c;依次点击File->Preferences->settings&#xff0c;中文就是文件->首选项->设置&#xff0c;打开如下图&#xff1a; 我们去搜索&#xff1a;Proxy &#xff0c; 然后回车 最重要的一步&#xff1a;将Http Prox…

关于 open ai,你了解多少?

OpenAI 的历史 第一阶段&#xff1a;2015-2018 年 2015 年&#xff0c;埃隆马斯克、山姆阿尔特曼、彼得蒂尔和杰西卡利文斯顿联合创立了 OpenAI。OpenAI 的目标是开发安全、有益的 AGI&#xff0c;并确保其造福全人类。在这一阶段&#xff0c;OpenAI 主要专注于基础研究&…

微信公众号怎么申请超过2个

一般可以申请多少个公众号&#xff1f;目前公众号申请数量的规定是从2018年底开始实施的&#xff0c;至今没有变化。规定如下&#xff1a;1、个人可以申请1个个人主体的公众号&#xff1b;2、企业&#xff08;有限公司&#xff09;可以申请2个公众号&#xff1b;3、个体户可以申…

中仕教育:2024年国考面试题型有哪些?

国考面试是选拔公务员的重要环节&#xff0c;通常涉及以下几个方面&#xff1a; 1. 自我介绍&#xff1a;考官通常会要求考生做一个简短的自我介绍。内容可以包括自己的基本情况、学历、工作经历等。 2. 专业知识&#xff1a;根据应聘者所应聘的职位和部门的不同&#xff0c;…

猛玛LARK M1无线麦克风采用 思远半导体 其实就是蓝牙话筒

自上世纪无线电技术开始发展起来&#xff0c;到了几十年后的今天&#xff0c;无线通讯技术已经成熟&#xff0c;开始追求更好的音质以及用户使用体验&#xff0c;优秀的产品也如雨后春笋般的出现&#xff0c;技术革新&#xff0c;极致音质&#xff0c;竞争也越来越激烈。这时候…

VC++中使用OpenCV进行人脸检测

VC中使用OpenCV进行人脸检测 对于上面的图像&#xff0c;如何使用OpenCV进行人脸检测呢&#xff1f; 使用OpenCV进行人脸检测十分简单&#xff0c;OpenCV官网给了一个Python人脸检测的示例程序&#xff0c; objectDetection.py代码如下&#xff1a; from __future__ import p…

【架构师视角系列】Apollo配置中心之Client端(二)

原创文章&#xff0c;转载请标注。https://blog.csdn.net/leeboyce/article/details/135733075 文章目录 声明配置中心系列文章一、客户端架构1、Config Service职责&#xff08;1&#xff09;配置管理&#xff08;2&#xff09;配置发布&#xff08;3&#xff09;配置读取 2、…

【Linux】Linux开发工具 - vim的基本操作

IDE例子 Linux编辑器-vim使用 vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。例如语法加亮&#xff0c;可视化操作不仅可以在终端运行&#xff…