素因数分解

forループまわすだけだけど、10^15ぐらいの数でも全然いけるのね。


http://projecteuler.net/index.php?section=problems&id=3
$ ./a.out
600851475143
71 839 1471 6857

#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;

int integerFactorization(ll num){
  ll N = num;
  vector<ll> v;
  for(ll i=2; i*i<=N; i++){
    if(num%i==0){
      v.push_back(i);
      num/=i;
      i--;
    }
  }
  if(num!=1) v.push_back(num);
  
  
  for(int i=0; i<v.size(); i++){
    cout << v[i] << " ";
  }
  cout << endl;
  return v.size();
}

int main(){
  ll n;
  while(cin >> n, n){
    integerFactorization(n);
  }
  return 0;
}