第十四届蓝桥杯JavaA组省赛真题 - 互质数的个数

解题思路:

快速幂 + 欧拉函数

快速幂比较常见于数据较大的取模场景,欧拉函数感觉还是有点抽象

注意:

取模的时候就不要简写了,例如:res = res * a % mod;不要写成res *= a % mod;

import java.util.Scanner;

public class Main {
    static int mod = 998244353;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long a = sc.nextLong();
        long b = sc.nextLong();
        // 如果a等于1,则直接输出0,因为任何数的0次方都是1
        if (a == 1) System.out.println(0);
        // 初始化结果res为a
        long res = a, x = a;

        // 循环,从2开始到x的平方根,检查x的因子
        for (int i = 2; i <= Math.sqrt(x); i++) {
            // 如果i是x的因子
            if (x % i == 0) {
                // 不断除以i,直到x不能被i整除
                while (x % i == 0) x /= i;
                // 根据欧拉定理,将res中所有i的因子替换为i-1
                res = res / i * (i - 1);
            }
        }
        // 如果x还有大于1的因子,重复上述操作
        if (x > 1) res = res / x * (x - 1);

        // 输出结果,为res乘以a的b-1次方,并对mod取模
        System.out.println(res * qmi(a, b - 1) % mod);
    }

    // 快速幂运算方法,用于计算a的b次方模mod的值
    private static long qmi(long a, long b) {
        long res = 1;
        while (b > 0) {
            if ((b % 2) == 1) res = res * a % mod;
            a = a * a % mod;
            b /= 2;
        }
        return res % mod;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漏洞通告| 广联达OA SQL注入漏洞获取用户名密码

广联达OA介绍 广联达办公OA是一款综合办公自动化解决方案&#xff0c;旨在提高组织内部的工作效率和协作能力。它提供了一系列功能和工具&#xff0c;帮助企业管理和处理日常办公任务、流程和文档。 资产收集 fofa&#xff1a;fid”/yV4r5PdARKT4jaqLjJYqw”或者body”/Servi…

B树,红黑树,LR,RL

红黑树来源于多叉树–>234树4阶B树 红黑树&#xff1a;每个节点不是红色就是黑色&#xff0c;根节点一定是黑色&#xff0c;叶子节点是黑色的&#xff0c;一个红色节点的子节点一定是黑色的&#xff0c;从根节点到根节点都会经过相同数量的黑色节点&#xff0c;从根节点到任…

测量仪器常见技术指标

本文介绍测量仪器常见技术指标。 1.误差 误差也叫示值误差&#xff0c;指被测量仪器示值与测量标准提供的约定真值之差。误差有3种主要形式。 1)绝对误差 示值误差用绝对误差表示为&#xff1a; 其中&#xff0c; 为用绝对误差表示的测量仪器示值误差 x为被测仪器的示值…

滑动窗口_水果成篮_C++

题目&#xff1a; 题目解析&#xff1a; fruits[i]表示第i棵树&#xff0c;这个fruits[i]所表示的数字是果树的种类例如示例1中的[1,2,1]&#xff0c;表示第一棵树 的种类是 1&#xff0c;第二个树的种类是2 第三个树的种类是1随后每一个篮子只能装一种类型的水果&#xff0c;我…

网络爬虫框架Scrapy的入门使用

Scrapy的入门使用 Scrapy概述引擎&#xff08;Engine&#xff09;调度器&#xff08;Scheduler&#xff09;下载器&#xff08;Downloader&#xff09;SpiderItem Pipeline 基本使用安装scrapy创建项目定义Item数据模型对象创建爬虫(Spider)管道pipeline来保存数据启动爬虫 其他…

哪里脏扫哪里,脏污识别将成扫地机器人下一个“卷”点?

让“人工式”清洁成为可能。 同质化竞争中的下一个“卷”点&#xff1f; 对于扫地机器人而言&#xff0c;脏污识别并非是个新概念&#xff0c;从2022年开始就有厂商提出&#xff0c;只是相较于其它方面的“内卷”&#xff0c;厂商们最初对它的重视程度并不高&#xff0c;目前脏…

ROUYI框架地址

1、原版系统地址与文档 https://gitee.com/dromara/RuoYi-Cloud-Plus?_fromgitee_search 源码地址 https://plus-doc.dromara.org/#/ruoyi-cloud-plus/home 后端地址 https://plus-doc.dromara.org/#/plus-ui/home 前端地址 前端代码地址&#xff1a; RuoYi-Vue-Plus: 多租户…

YOLOv5 | 鬼魅(幽灵)卷积 | 改进Ghost卷积轻量化网络

目录 原理简介 代码实现 yaml文件实现 检查是否添加执行成功 完整代码分享 论文创新必备 启动命令 由于内存和计算资源有限&#xff0c;在嵌入式设备上部署卷积神经网络 (CNN) 很困难。特征图中的冗余是那些成功的 CNN 的一个重要特征&#xff0c;但在神经架构设计中很…

MFC(一)搭建空项目

安装MFC支持库 创建空白桌面程序 项目相关设置 复制以下代码 // mfc.h #pragma once #include <afxwin.h>class MyApp : public CWinApp { public:virtual BOOL InitInstance(); };class MyFrame : public CFrameWnd { public:MyFrame();// 消息映射机制DECLARE_…

Java毕业设计-基于springboot开发的游戏分享网站平台-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能模块2.2用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的…

docker logs 查找日志常用命令

docker logs 是什么 docker logs 是 Docker 命令行工具提供的一个命令&#xff0c;用于查看容器的日志输出。它可以显示容器在运行过程中生成的标准输出&#xff08;stdout&#xff09;和标准错误输出&#xff08;stderr&#xff09;&#xff0c;帮助用户诊断容器的行为和排查…

如何快速搭建一个ELK环境?

前言 ELK是Elasticsearch、Logstash和Kibana三个开源软件的统称&#xff0c;通常配合使用&#xff0c;并且都先后归于Elastic.co企业名下&#xff0c;故被简称为ELK协议栈。 Elasticsearch是一个实时的分布式搜索和分析引擎&#xff0c;它可以用于全文搜索、结构化搜索以及分…

CNN速通(草稿纸总结版)

本文章是看张老师推荐的深度学习速通视频CNN部分时&#xff0c;在草稿纸上记录的之前没有接触过的新鲜玩意儿&#xff0c;仅作为摘要灵感&#xff0c;可能实际提供不了太大知识价值&#xff0c;谨慎食用。 感谢张老师推荐&#xff0c;指路b站速通视频&#xff0c;讲得蛮好&…

猫,路由器,WIFI

家庭网络常识 1&#xff1a;猫、路由器、wifi_哔哩哔哩_bilibili 入户光纤插到猫上面&#xff0c;网线连接猫和路由器&#xff0c;网线连接路由器和电脑。路由器可以发射WIFI。 手机通过WIFI连接到路由器。 左边是猫&#xff0c;右边是光猫。 &#xff08;modem&#xff09; …

YOLOv9改进策略:注意力机制 | FocalNet焦点调制注意力取代自注意力

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;由于自注意力二次的计算复杂度效率较低&#xff0c;尤其是对于高分辨率输入。因此&#xff0c;作者提出了focal modulation network&#xff08;FocalNet&#xff09;使用焦点调制模块来取代自注意力。 改进结…

Yolov8-pose关键点检测:卷积魔改 | DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测

💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,完美和YOLOv8结合,助力涨点 DCNv4优势:(1) 去除空间聚合中的softmax归一化,以增强其动态性和表达能力;(2) 优化存储器访问以最小化冗余操作以加速。这些改进显著加快了收敛速度,并大幅提高了处理速度,DCN…

酒店能源监测管理系统:实现节能减排与提升管理效率的利器

随着全球能源问题的日益突出和可持续发展理念的深入人心&#xff0c;酒店业也在积极探索节能减排的途径。在这一背景下&#xff0c;酒店能源监测管理系统应运而生&#xff0c;成为了酒店行业提升管理效率、降低能源消耗的重要工具。本文将从多个角度介绍酒店能源监测管理系统的…

20.变量的使用方式和注意事项

文章目录 一、变量的用法二、变量的注意事项三、总结 一、变量的用法 代码示例 public static void main(String[] args) {//1.基本用法// 定义变量&#xff0c;再进行输出int a 10;System.out.println(a);// 10System.out.println(a);// 10//2.变量参与计算int b 30;int c …

I.像素放置【蓝桥杯】/dfs+剪枝

像素放置 dfs剪枝 思路&#xff1a;利用dfs填入0或者1&#xff0c;并利用数字进行判断&#xff0c;另外这一题数组要从1开始而不是0&#xff0c;这样在num方法中可以少了判断的操作 #include<iostream> using namespace std; //a数组存储输入的值&#xff0c;下划线则为…

Linux内核之最核心数据结构之一:struct file(三十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…
最新文章