2-07. 素因子分解

来源:互联网 发布:网络出版服务许可证 编辑:程序博客网 时间:2024/05/16 20:28
#include<iostream>#include<cstring>using namespace std;long prime[2000];bool isPrime(long N){for(long i=2; i*i <= N; i++){if(N%i == 0)return false;}return true;}int main(){int i,j,temp,count;bool flag;memset(prime,0,sizeof(long));    for( i=2,j=0; j<2000; i++){if(isPrime(i)) {prime[j] = i; j++;}}//for(i=0; i<j; i++)cout<<prime[i]<<" ";long N;    while(cin>>N){count = 0;cout<<N<<"=";if(N==1)cout<<1<<endl;else{for(i=0; N!=1; i++){temp = 0;flag = false; while( N%prime[i] == 0){temp ++;N /= prime[i];flag = true;}if(count == 0){if(flag){count++;if(temp > 1)cout<<prime[i]<<"^"<<temp;  elsecout<<prime[i];}}else{if(flag){if(temp > 1)cout<<"*"<<prime[i]<<"^"<<temp;  elsecout<<"*"<<prime[i];}}}    cout<<endl;}}return 0;}