6.高高的最大值寻找 - 蓝桥云课
6. 高高的最大值寻找
问题描述
高高想寻找一个最大值 x。它满足:
- x 不是 2 到 1000 的倍数。
- x 的值大于 1000,小于等于 n。
请你找到满足条件 x 的最大值,如果不存在则输出 0。
输入格式
第一行输入一个整数 n(1001 ≤ n ≤ 10^9),表示 n 的大小。
输出格式
输出仅一行,包含一个整数,如果能找到满足条件的 x,则输出 x 的最大值,否则输出 0。
样例输入
100000
样例输出
99991
思路:
暴力筛选,从最大n逐渐减小到1001开始寻找,找到一个满足条件的就是最大值
代码如下:
#include <iostream>
#include <vector>
#include<queue>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
ll n;
bool check(ll x)
{for(ll i = 2 ; i <= 1000 ; i++){if(x % i == 0)return false;}return true;
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n;for(ll i = n ; i >= 1001 ; i--){if(check(i)){cout << i << '\n';break;}}return 0;
}