题目描述:
给出你1~n这n个数,找出k个数使他们的gcd最大。并输出这个gcd。
题解:
如果这k个数的最大公因数是x,那么就需要满足:
x
∗
1
,
x
∗
2
,
x
∗
3.....
x
∗
k
∈
n
x * 1,x*2,x*3.....x*k ∈ n
x∗1,x∗2,x∗3.....x∗k∈n
那么我们希望x * k
无限靠近n,所以就有了答案n / k
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<map>
#define ll long long
using namespace std;
map<int,int> mp;
int main()
{
int n,k;
cin >> n >> k;
cout << n / k << endl;
return 0;
}