P1372 又是毕业季I
考察:推导+gcd(?)
求在1~n的范围内,取k个数求它们的最大公约数.
还以为是一个个枚举,看数据范围感觉不对,结果看了讨论区....我果然fw
正确思路:
k个数的最大公约数.假设公约数为x,则这k个数为x,2*x,3*x....k*x我们需要让k*x尽量靠近n,所以答案显而易见...
1 #include <iostream> 2 using namespace std; 3 int gcd(int a,int b) 4 { 5 return b?gcd(b,a%b):a; 6 } 7 int main() 8 { 9 int n,k; 10 scanf("%d%d",&n,&k); 11 printf("%d",n/k); 12 return 0; 13 }