2012-10-02 1 views
1

일반적으로 나는 프라임 분해 (prime factorization)를 수행하고 모든 주요 인자를 얻습니다. 그리고 나는 모든 요인을 찾기 위해 순열과 조합을합니다.숫자 범위의 요인을 범위 내에서 얻는 방법은 무엇입니까?

예를 들면 : 1824는 제가 고려해야 할 숫자입니다. 이제 번호 300에서 1824의 아무런 요인도 필요 없습니다.

트릭이 있습니까 ??

+0

예를 들어, 요인을 찾으려는 범위는 무엇입니까? 1 ~ 300? – Rndm

답변

0

무차별 대치 솔루션으로,이를 위해 소수를 초 기화 할 필요가 없습니다. 범위 내의 모든 숫자를 간단히 확인할 수 있습니다.

요인을 찾으려는 숫자의 범위를 [range_start, range_end]로합시다. 루프에서 이러한 숫자를 반복하고 각 숫자 (예 : x)에 대해 (number % x == 0)가 맞는지 확인한 다음 x가 숫자의 인수 인 지 확인합니다.

0

하나의 트릭은 요인을 검색하려는 번호의 제곱근을 지나서 숫자를 검색하지 않는 것입니다. 예를 들어 2 ~ 3,000의 요소를 찾으려면 2-ceil (sqrt (1824))에서 검색해야합니다.이 값은 2-43입니다. 2-43 범위의 숫자를 찾은 다음이를 1824로 나누어 43보다 큰 다른 요소가 있는지 확인하십시오.

관련 문제