本站遷移

因為我最近租用了網路空間以及網域,
故本站已遷移至新網站~
這邊的資訊已經正在進行搬移的工作~
希望各位可以到新網站去逛XD

New Website:
http://knightzone.org/

搜尋此網誌

2011年1月18日 星期二

[Zerojudge]a010: 因數分解

直接從2開始搜尋到輸入的值的根號,
看看能不能整除,
能整除就一直除到不能,
做完後再看看輸入的值是否已經被除到只剩下1,
如果不是,一定只是一個大於輸入的值的根號的質數,將之輸出即可。

[C++](6ms, 700KB)
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int x;
while( cin >> x )
{
bool print = 0;
int num;
int limit = static_cast<int>(sqrt(x));
for( int i = 2; i <= limit; i++ )
{
num = 0;
while( x % i == 0 )
{
num++;
x /= i;
}
if( num )
if( print )
{
cout << " * " << i;
if( num != 1 )
cout << '^' << num;
}
else
{
print = 1;
cout << i;
if( num != 1 )
cout << '^' << num;
}
}
if( x != 1 )
if( print )
cout << " * " << x;
else
cout << x;
cout << endl;
}
return 0;
}

0 意見:

張貼留言