#include typedef long long int t; t read_num(void) { t n=0; int c; int sign=1; while ((c=getchar())>=0 && (c<='9' && c>='0' || c=='-')) if (c=='-') sign= -sign; else n=n*10+(c-'0'); return n*sign; } void print_num(t n) { if (n>=10) print_num(n/10); putchar((int)(n%10)+'0'); } void print(t n) { printf(" "); if (n<0) { putchar('-'); n= -n; } print_num(n); putchar('\n'); } void factor(t n) { long int d=2; long int top=sqrt((double)n); while (d<=top && n>=d) { if (n%d) if (d==2) ++d; else d+=2; else { print((t)d); n=n/d; top=sqrt((double)n); } } if (n>1) print(n); } main() { t n; for(;;) { n=read_num(); if (n<0) break; factor(n); putchar('\n'); } exit(0); }