5億未満の数があり、効率的な方法で因数分解したいと思います。どのアルゴリズムを提案しますか?注:制限時間は0.01秒です。
私はこのC++コードを書いたばかりですが、それは絶対にひどいです!
void factorize(int x,vector<doubly> &factors)
{
for(int i=2;i<=x;i++)
{
if(x%i==0)
{
doubly a;
a.number=i;
a.power=0;
while(x%i==0)
{
a.power++;
x/=i;
}
factors.push_back(a);
}
}
}
そして二重にこのようなものです:
struct doubly
{
int number;
int power;
//and some functions!!
};
もう1つのポイント:nは素数ではないことを私は知っています