码题杯 猜数 题型:枚举 难度:青铜

77 阅读1分钟

码题集OJ-猜数 (matiji.net)

思想

很简单的一个题,但是a、b、c的数据范围特别大,最好还是做个剪枝。

如果a%b==0那么就直接输出impossible结束了,因为如果b是a的倍数,那么就不可能满足i即是a的倍数又不是b的倍数。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e6 + 10;
int flag;

signed main() {
	int a, b, c;
	cin >> a >> b >> c;
    if(a%b==0)
    {
        cout<<"impossible"<<endl;
        return 0;
    }
	for (int i = c;; i++) {
		if (i % a == 0 && i % b != 0) {
			cout << i << endl;
			flag = 1;
			break;
		}
	}
	if (flag == 0)
		cout << "impossible" << endl;

	return 0;
}

image.png