10392
long long 规模数据的因式分解,分解出来的>1000000的数至多有一个,
这样的话稍微处理一下就行,如果能在<=1000000内找到因子就输出,如果没有的话就直接输出这个数。
//============================================================================ // Name : 10392.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <cstdio> #include <cstring> using namespace std; long long n; void work(long long m){ int tag = 0; for(int i = 2;i <= 1000000;i++){ if(m%i == 0){ tag = 1; printf(" %d\n", i); m /= i; while(m%i == 0){ printf(" %d\n", i); m /= i; } if(m == 1) return; work(m); break; } } if(tag == 0){ printf(" %lld\n", m); return ; } } int main() { freopen("a.txt", "r", stdin); while(scanf("%lld", &n)&&n>=0){ work(n); printf("\n"); } return 0; }