1080:余数相同问题
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 20483 通过数: 13265
【题目描述】
已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。
请问满足上述条件的x的最小值是多少?数据保证x有解。
【输入】
一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。
【输出】
一个整数,即满足条件的x的最小值。
【输入样例】
300 262 205
【输出样例】
19
思路:将输入数分别除a,b,c,余数相同,并且 求最小值,需设最小参数,如果比最小的参数还小就更新
#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
int main()
{
int a,b,c,x;
long int n = 1000000,min1 = 1000;
scanf("%d%d%d",&a,&b,&c);
for(long int i = 1;i <= n;i++)
{
x = i;
if(x > 1)
{
if(a % i == b % i && b % i == c % i && a % i == c % i && min1 > x)//余数相同,保存最小的值
min1 = x;
}
}
printf("%d",min1);
return 0;
}