求卡常
  • 板块学术版
  • 楼主xsmfollower
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/10/17 19:17
  • 上次更新2024/10/17 20:48:06
查看原帖
求卡常
1308728
xsmfollower楼主2024/10/17 19:17

rt,一个点 1.03s 一直过不去。

#include<cstdio>
#include<iostream>
using namespace std;
int main() {
  freopen("square.in","r",stdin);
  freopen("square.out","w",stdout);
  long long n,ans; scanf("%lld",&n),ans=n-1;
  for(int i=2;1ll*i*i<=n;i++)
    if(!(n%i)) {
      long long m=n/i; ans=min(ans,i+m-2);
      for(int j=i;1ll*j*j<=m;j++) if(!(m%j)) ans=min(ans,i+j+m/j-3);
    }
  printf("%lld %lld",ans,n-1);
  return 0;
}
2024/10/17 19:17
加载中...