刚开始做这道题的时候,方法很多种,但是哪一种更好呢,如果知道开方的话就很容易了,开方之后,两个数是相等的,相差是0,但是很多数是没办法整数开方,那么同样道理,开方相差最小,那么无法开方,那最小肯定是在开方上下。
#include<iostream> #include<cmath> using namespace std; int main(){ int n; while(cin>>n){ int k=sqrt(n); int i=k; for(;i>0;i--){ if(n%i==0) break; } cout<<i<<" "<<n/i<<endl; }return 0; }
全部评论
(0) 回帖