今日学习笔记:
感谢题解第一个牛友,感觉一下子有了思路还变简单了,太妙了,直接从1开始遍历,最后一个符合的数就是最大的且最相近
#include<stdio.h> #include<math.h> int main() { int n,length,width,i; scanf("%d",&n); for (i=1;i<=sqrt(n);i++) { if (n%i==0) { width=i; } } length=n/width; printf("%d %d",width,length); return 0; }
(以下为复制内容,为了我以后可以更快的复习)
一个数的如果是合数,必定可以写成c = a X b,而a或者b其中必定有一个数小于等于c的开平方
比如16 = 1X16=2X8=4X4
所以只需要找出最小值中的最大值就行
比如16 = 1X16=2X8=4X4
所以只需要找出最小值中的最大值就行