首页 > 其他分享 >gcd(a+c,b+c)!=1,求最小的c

gcd(a+c,b+c)!=1,求最小的c

时间:2023-04-23 22:00:23浏览次数:36  
标签:a% gcd int 最小 long ans

https://ac.nowcoder.com/acm/contest/54877/E

根据更相减损法 gcd(a+c,b+c) = gcd(a-b,a+c),由于a,b已经给出,a-b为固定值。

当a-b为1时,无解

当a-b为0时,若a = 1,则c = 1,否则 c = 0

对于a-b = 其他,对a-b做质因子分解,对于每一个质因子d去求最小的c使得gcd(d,a+c)!=1,发现c = d - a%d,最后维护一个最小值即可

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b;
signed main(){
	cin>>a>>b;
    if(a<b) swap(a,b);
    int num = a-b;
    if(num==1){
        cout<<-1;
    }
    else if(num==0){
        if(a==1) cout<<1;
        else cout<<0;
    }
    else{
        int k = num;
        int ans = 1e15;
        for(int i = 2;i*i<=num;i++){
            if(k%i==0){
                ans = min(ans,i-a%i);
            }
            while(k%i==0) {
                k/=i;
            }
        }
        if(k>1){
             ans = min(ans,k-a%k);
        }
        cout<<ans;
    }
}

标签:a%,gcd,int,最小,long,ans
From: https://www.cnblogs.com/wujw11world/p/17347898.html

相关文章

  • 把数组排成最小的数
    classSolution{public:staticboolcmp(inta,intb){stringas=to_string(a),bs=to_string(b);returnas+bs<bs+as;}stringprintMinNumber(vector<int>&nums){sort(nums.begin(),nums.end(),cmp);......
  • 图与网络——最小费用最大流Python实现
    最小费用最大流问题是经济学和管理学中的一类典型问题。在一个网络中每段路径都有“容量”和“费用”两个限制的条件下,此类问题的研究试图寻找出:流量从A到B,如何选择路径、分配经过路径的流量,可以在流量最大的前提下,达到所用的费用最小的要求。如n辆卡车要运送物品,从A地到B地。由于......
  • 堆用于维护最大最小值
    前\(k\)小数题目:有两个长度为\(n\)的数列\(a,b,(1\leqi,j\leqn)\),通过\(a_i+b_j\)可以构造出\(n\timesn\)个数,求构造出的数中前\(k\)小的数。格式:输入格式:第一行\(2\)个数\(n,k\);第二行\(n\)个数,表示数列\(a\);第三行\(n\)个数,表示数列\(b\)。......
  • 最小割树小记
    最小割树是一种支持动态查询两点间最小割的结构。构造任意选两个点\(s,t\),在全图上跑出\(s\tot\)的最小割\(w\),建立边\((s,t,w)\)。设残量网络上与\(s\)连通的部分为\(S\),与\(t\)连通的部分为\(T\),则将图分成\(S,T\)两个点集,并在两个点集上做类似的事情,直到点集......
  • STM32下载ELF文件、最小可执行bin文件测试
    1、STM32能下载ELF格式的文件吗?答:可以。因为所谓的bin文件就是ELF文件的.text代码段。当然前提是下载工具能识别ELF文件格式,STM32下载ELF文件并不意味着STM32可以把ELFdownload到Flash上,而是下载工具能从ELF提取到bin文件,下载时通信链路上传输的也只有要bin文件。例如有elf文......
  • 最小生成树
    前言最小生成树是图论的一种,生成树问题研究的就是把图里面所有顶点保留,但只会选择部分边所得到的树。分析P3366【模板】最小生成树\(\text{Kruscal算法}\)\(\text{Kruscal}\)是利用并查集实现的算法,适合用于稀疏图,它的时间复杂度为\(O(m\logm)\)(\(m\)为边数),具体实现过......
  • 51nod 1212 无向图最小生成树(最小生成树)
    1212 无向图最小生成树基准时间限制:1 秒空间限制:131072 KB分值: 0 难度:基础题 收藏 关注Input第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000)第2 - M + 1行:每行......
  • 最小生成树详解-模板
    概念最小生成树的定义在一张带权无向图中,最小生成树是一棵生成树,它的边权值之和最小。生成树是一颗包含原图中所有顶点的树,它的边集合是原图的一个子集,且任意两个顶点之间都有且仅有一条简单路径。最小生成树的算法目前,最常用的两种最小生成树算法是Kruskal算法和Prim算法。Kruska......
  • 畅通工程之局部最小花费问题 - 最小生成树
    某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路......
  • Building a Space Station 2031 (三维的 最小生成树 prim)
    BuildingaSpaceStationTimeLimit:1000MS MemoryLimit:30000KTotalSubmissions:5873 Accepted:2913DescriptionYouareamemberofthespacestationengineeringteam,andareassignedataskintheconstructionprocessofthestation.Youareexpec......