【16届蓝桥杯寒假刷题营】第1期DAY4

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 
#include 
#include
#include 
#include 
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;
}

【16届蓝桥杯寒假刷题营】第1期DAY4_第1张图片

你可能感兴趣的:(蓝桥杯,算法,数据结构,模拟,c++)