首页 > 其他分享 >三十 3999. 最大公约数 (欧拉函数)

三十 3999. 最大公约数 (欧拉函数)

时间:2024-04-11 12:13:33浏览次数:25  
标签:res private 最大公约数 static long 3999 sc 欧拉

3999. 最大公约数 (欧拉函数)
image

import java.util.*;

public class Main {
    private static int T;
    private static long a, m;
    
    private static long gcd(long a, long b) {
        return b == 0 ? a : gcd(b, a % b);
    }
    
    private static long euler(long x) {
        long res = x;
        for(long i = 2; i <= x / i; i++) {
            if((x % i) == 0) {
                while((x % i) == 0) {
                    x /= i;
                }
                res = res / i * (i - 1);
            }
        }
        if(x > 1) {
            res = res / x * (x - 1);
        }
        return res;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        T = sc.nextInt();
        while (T-- > 0) {
            a = sc.nextLong();
            m = sc.nextLong();
            long t = gcd(a, m);
            System.out.println(euler(m / t));
        }
    }
}

标签:res,private,最大公约数,static,long,3999,sc,欧拉
From: https://www.cnblogs.com/he0707/p/18128752/lanqiaobei30

相关文章

  • P7771 【模板】欧拉路径
    原题链接题解链式前向星版本的欧拉回路dfsvoiddfs(intu){for(inti=head[u];i>0;i=head[u]){head[u]=Next[i];//走过的路直接跳过dfs(to[i]);}que[l++]=u;}接下来的难点是如何字典序搜索。我们在dfs的时候直接让走字典序最小的边即......
  • 二十五 4199. 公约数 (最大公约数|二分)
    4199.公约数(最大公约数|二分)思路:先用求最大公约数的模板求出a与b的最大公约数d,然后得到从1到d的全部公约数,最后利用二分法找到满足l≤x≤r条件的最大的公约数x。importjava.util.*;publicclassMain{privatestaticinta,b,q,l,r,cnt;privatestati......
  • 欧拉函数
    一、性质求欧拉函数fromcollectionsimportCounter#证明:容斥原理#f(N)=N*(1-1/p1)*(1-1/p2)*...*(1-1/pn)#与N互质的数的个数:N-N/P1-N/P2-...-N/Pn+N/(p1p2)+...+...-...defcal_euler(x):ans=xcnt=Counter()i=......
  • 求最大公约数的方法---pta---N个数求和
    公约数,简单来讲,可以被两个数都整除的一个数。最大公约数,就是两个数的所有公约数中最大的那一个。求得方法有很多,比如://枚举法inta,b,t;cin>>a>>b;for(inti=1;i<=min(a,b);i++){if(a%i==0&&b%i==0){t=i;}}cout<<t;//辗转相除法:inta,b,t;cin>>a>>b;......
  • 【前端面试3+1】07vue2和vue3的区别、vue3响应原理及为什么使用proxy、vue的生命周期
    一、vue2和vue3的区别1.性能优化:        Vue3在性能方面有很大的提升,主要是通过虚拟DOM的优化和响应式系统的改进实现的。虚拟DOM重构:Vue3中对虚拟DOM进行了重构,使得更新算法更加高效,减少了更新时的开销,提升了性能。静态树提升:Vue3可以通过静态树提升技术......
  • 万向锁与欧拉角
    万向锁与欧拉角附赠自动驾驶学习资料和量产经验:链接前言上一篇中我们讲了欧拉角与旋转变化,最后留了一个悬念,就是欧拉角在俯仰角为±90°时会出现万向锁现象,这是欧拉角表征飞行器姿态的一个局限性,今天我们就来谈谈这个局限性是怎么产生的,以及如何解决这个问题。陀螺仪为了能......
  • 欧拉降幂
    什么是欧拉降幂欧拉函数(Euler'sTotientFunction)是指小于等于n的正整数中与n互质的数的个数,通常用符号φ(n)表示。对于一个正整数n,φ(n)表示满足条件的数的个数。当计算\(a^b\modn\)时,如果\(a\)和\(n\)互质(即它们的最大公约数为1),那么我们可以利用欧拉函数的性质来简化计算。......
  • VMware创建openEuler OS(欧拉)系统镜像虚拟机
    首先下载openEuler镜像文件,这里附上我使用的镜像版本链接:https://pan.baidu.com/s/1bCW7CGq05wGTM3VG_wks7A?pwd=ux5f 提取码:ux5f此处附上欧拉各版本网站openEuler下载|欧拉系统ISO镜像|openEuler社区官网下面开始安装步骤:蓝色框框内的选项自定义此处就创建好啦......
  • P8792 [蓝桥杯 2022 国 A] 最大公约数
    #include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;constintN=1e5+5;intgcd(intx,inty){re......
  • 欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理
     数据结构、算法总述:数据结构/算法C/C++-CSDN博客欧拉函数欧拉函数(Euler'stotientfunction)是一个与正整数n相关的数论函数,通常用φ(n)表示。定义为小于或等于n的正整数中与n互质的数的个数intphi(intx){intres=x;for(inti=2;i<=x/i;i++)......