问题标题: 酷町堂:1249 相同的余数

0
0
已解决
丁博扬
丁博扬
中级天翼
中级天翼

1249   相同的余数

经验值:800 时间限制:1000毫秒

题目描述 Description

有三个正整数x,y,z,找到一个大于1的整数a,将其作为除数分别除x,y,z,得到相同的余数,问满足上述条件的a的最小值是多少?若a不存在,则输出No。

输入描述 Input Description

输入一行,每两个数之间用一个空格隔开。(2=<x,y,z<=100000)

输出描述 Output Description

若有满足要求的a,则输出a的值。若没有,则输出No。

样例输入 Sample Input

【输入样例一】 5 7 9

【输入样例二】 3 4 5

样例输出 Sample Output

【输出样例一】 2

【输出样例二】 No

 

 

20分wa代码

#include<iostream>
using namespace std;
int minn;
bool flag=0;
int main(){
    int x,y,z;
    cin>>x>>y>>z;
    minn=min(x,y);
    minn=min(minn,z);
    for(int i=2;i<=maxn;i++){
        if(x%i==y%i==z%i){
            cout<<i;
            flag=1;
            break;
        }
    }
    if(flag==0){
        cout<<"No";
    }
    return 0;
}

丁博扬在2021-05-07 19:48:43追加了内容

错了错了,循环里的maxn改为minn

丁博扬在2021-05-08 20:39:21追加了内容

已自行解决,输出5887415157的采纳


0
已采纳
汪宇航
汪宇航
新手启示者
新手启示者

核心:

int x,y,z,a,cnt=0;

cin>>x>>y>>z;

for(int a=2;a<=max(x,max(y,z));a++){

int b=x%a,c=y%a,d=z%a;

if(b==c&&c==d){

cout<<a;

cnt++;

break;

}

}

if(cnt==0){

cout<<"No";

}

0
0
包思远
包思远
新手启示者
新手启示者
    定义a,b,c,d,f=0;
    cin>>a>>b>>c; 
    d=min(a,b);
    d=min(d,c);
    for(int i=2;i<=d+1;i++){
        int r=a%i,m=b%i,l=c%i;
        if(r==m&&m==l){
            cout<<i;
            f++;
            break;
        }
    }
    if(f==0){
        cout<<"No";
    }

 

0
0
0
我要回答