감 ¶
블로그 데 더 빠르게 만들다.
가 1 3-4 력게 ..ㅠ.ㅜ (고로 는 12-13 린다.)
결국 력 무 말 몰라 내맘대로 렸다. cin..ㅎㅎㅎ 가 명 ..ㅎㅎ
그러고보 리 능 고려 다...;; 뭐 다른 리라 각다..^^;; 3.2G CPU...OTL..
가 1 3-4 력게 ..ㅠ.ㅜ (고로 는 12-13 린다.)
결국 력 무 말 몰라 내맘대로 렸다. cin..ㅎㅎㅎ 가 명 ..ㅎㅎ
그러고보 리 능 고려 다...;; 뭐 다른 리라 각다..^^;; 3.2G CPU...OTL..
보 까봐~ 각대로 다. 더빠르게 다른 방법 는것 같만 단 부~
1 기로 때 13->10 다. T.T 로 많 빨라는 ..
1 기로 때 13->10 다. T.T 로 많 빨라는 ..
¶
~cpp
#include <iostream>
#include <math.h>
using namespace std;
unsigned int factorial_factors(unsigned int);
void main()
{
cout << "2-1000000 를 력. 맞는 를 력면 료됩다.\n";
cin >> input_number;
while (1)
{
cout << factorial_factors(input_number) << "\n";
cin >> input_number;
}
}
unsigned int factorial_factors(unsigned int answer)
{
unsigned int *log_answer = (unsigned int*)malloc((answer+2)*sizeof(unsigned int));
unsigned int sum = 1;
unsigned int gab;
unsigned int suchEnd = (unsigned int)sqrt((double)answer);
log_answer[2]=1;
log_answer[3]=0;
for (register unsigned int i=4; i<=answer;i+=2)
{
log_answer[i]=2;
log_answer[i+1]=0;
}
for (register unsigned int i=3; i<=suchEnd; ++i)
{
if (0==log_answer[i])
{
log_answer[i]=1;
gab=i+i;
for(register unsigned int j = i * i; j <= answer; j+= gab)
log_answer[j] = i;
++sum;
}
else
sum+=log_answer[i]=log_answer[i/log_answer[i]]+1;
}
for (register unsigned int i = suchEnd + 1; i <= answer; ++i)
{
if (0==log_answer[i])
{
log_answer[i]=1;
gab=i+i;
++sum;
}
else
sum+=log_answer[i]=log_answer[i/log_answer[i]]+1;
}
free(log_answer);
return sum;
}
나게 말 ¶
1.4G데 -;;;; 볼까나;; -
봤. 돌가더라. 다른..ㅎㅎㅎ 면 바로뜨던데? 100만는 ㅎㅎ-
AOI FactorialFactors
봤. 돌가더라. 다른..ㅎㅎㅎ 면 바로뜨던데? 100만는 ㅎㅎ-
뭐가뭔 몰르겟 고난 ㅋㅋㅋㅋ
----
-김록
AOI FactorialFactors










