题意简述
给定一个平面直角坐标系和一个整数 ,你在 ,且每次都能向上或向左移动一格。
求你到达 所要的次数。
解题思路
注意起点是 。
无论如何走,步数都是 即 。
又因为 。
所以 都是 的因数。
所以从 枚举 的因数即可,时间复杂度 。
要开 long long
。
代码实现
#include<bits/stdc++.h>
#define ll long long
#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
ll n,ans=inf;
int main() {
scanf("%lld",&n);
for(int i=1;i<=sqrt(n);i++)
if(n%i==0) ans=min(n/i+i-2,ans);
printf("%lld",ans);
return 0;
}
//code by _IcyFire