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

news/2024/4/28 15:57:30

解题思路:

快速幂 + 欧拉函数

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

注意:

取模的时候就不要简写了,例如: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次方都是1if (a == 1) System.out.println(0);// 初始化结果res为along 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-1res = 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://wed.xjx100/news/1263613.html

相关文章

记录minio、okhttp、kotlin一连环的版本冲突问题

问题背景 项目中需要引入minio&#xff0c;添加了如下依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.2</version></dependency> 结果运行报错&#xff1a; Caused by: java.la…

flink on yarn-per job源码解析、flink on k8s介绍

Flink 架构概览–JobManager JobManager的功能主要有: 将 JobGraph 转换成 Execution Graph,最终将 Execution Graph 拿来运行Scheduler 组件负责 Task 的调度Checkpoint Coordinator 组件负责协调整个任务的 Checkpoint,包括 Checkpoint 的开始和完成通过 Actor System 与 …

Git命令上传本地项目至github

记录如何创建个人仓库并上传已有代码至github in MacOS环境 0. 首先下载git 方法很多 这里就不介绍了 1. Github Create a new repository 先在github上创建一个空仓库&#xff0c;用于一会儿链接项目文件&#xff0c;按照自己的需求设置name和是否private 2.push an exis…

vue组件弹窗窗

import { createApp } from vue; import { Popup } from vant;const app createApp(); app.use(Popup); 有这样的一个效果 在手机上很美观 不错 建议大家使用

基于Mac M1[ARM64]环境下Docker部署大数据集群

注意&#xff1a;打开新环境需要手动同步环境变量 一 机器依赖(CentOS7)[重要] yum -y install \ vim \ sudo \ net-tools.aarch64 \ nmap-ncat.aarch64 \ telnet \ openssh-server \ openssh-clients初始化sshd文件&#xff0c;如果不初始化下边文件&#xff0c;sshd服务会启…

iOS —— 初识KVO

iOS —— 初始KVO KVO的基础1. KVO概念2. KVO使用步骤注册KVO监听实现KVO监听销毁KVO监听 3. KVO基本用法4. KVO传值禁止KVO的方法 注意事项&#xff1a; KVO的基础 1. KVO概念 KVO是一种开发模式&#xff0c;它的全称是Key-Value Observing (观察者模式) 是苹果Fundation框架…

HTTP——Cookie

HTTP——Cookie 什么是Cookie通过Cookie访问网站 我们之前了解了HTTP协议&#xff0c;如果还有小伙伴还不清楚HTTP协议&#xff0c;可以点击这里&#xff1a; https://blog.csdn.net/qq_67693066/article/details/136895597 我们今天来稍微了解一下HTTP里面一个很小的部分&…

TitanIDE与传统 IDE 比较

与传统IDE的比较 TitanIDE 和传统 IDE 属于不同时代的产物&#xff0c;在手工作坊时代&#xff0c;一切都是那么的自然&#xff0c;开发者习惯 Windows 或 MacOS 原生 IDE。不过&#xff0c;随着时代的变迁&#xff0c;软件行业已经步入云原生时代&#xff0c;TitanIDE 是顺应…