一个数的如果是合数,必定可以写成c = a X b,而a或者b其中必定有一个数小于等于c的开平方
比如16 = 1X16=2X8=4X4
所以只需要找出最小值中的最大值就行
#include <stdio.h> #include <math.h> int main() { int i,n,max; max = 0; scanf("%d", &n); for (i = 1;i<=sqrt(n);i++) { if (n % i == 0) max = i; } printf("%d %d", max, n/max); return 0; }