找一个数n的素数乘积组合
范围2~sqrt(n)
证明:
假设素数n存在sqrt(n)~n的数a,有n=a*b,则b范围是2~sqrt(n), 即b已经在前面通过对范围2~sqrt(n)的遍历中得到,所以a>sqrt(n)的情况已经考虑到了,不必再增加遍历的范围
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin >> n){
int i;
for(i=2; i*i<=n; i++){
if(n%i==0){
n=n/i;
cout << i << "*";
i=1;
}
}
cout << n << endl;
}
}