https://chwan.tistory.com/entry/Java-%EC%95%BD%EC%88%98%EC%9D%98-%EA%B0%9C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0 μμ λ°μ·νμμ΅λλ€.
λ°©λ²1
Nμ μ½μ κ°μ ꡬνλ λ°©λ²μ μκ°νμ λ λ°λ‘ λ μ€λ₯΄λ λ°©λ²μ Nμ 1λΆν° NκΉμ§μ μ«μλ‘ λλ μ½μμΈμ§ νλ³νμ¬ μΉ΄μ΄νΈλ₯Ό ν΄μ£Όλ λ°©λ²μ΄λ€.
μ½λλ‘ κ΅¬νν΄λ³΄λ©΄ μλμ κ°λ€.
int N = 1000000000;
int count = 0;
for (int i = 1; i <= N; i++) {
if (N % i == 0) count++;
}
System.out.println(count);
μ΄ λ°©λ²μ 1λΆν° NκΉμ§ μ λΆ κ²μ¦μ ν΄λ΄μΌνκΈ° λλ¬Έμ μ€νμκ°μ΄ O(n)μΌλ‘ N κ°μ΄ μμ λ μΈλ§νμ§λ§ N κ°μ΄ 컀μ§λ©΄ μμ£Ό λΉν¨μ¨μ μ΄λ€.
λ°©λ²2
Nμ μ½μ μ€ νλκ° mμ΄λΌκ³ νμ λ, λ€λ₯Έ μ½μλ N/mμ΄ λλ―λ‘ νλμ μ½μλ₯Ό μλ©΄ λ€λ₯Έ νλμ μ‘΄μ¬κ° 보μ₯μ΄ λλ€.
κ·ΈλΌ 1λΆν° μ΄λκΉμ§ μ½μλ₯Ό ꡬν΄μΌ Nμ μ½μμ μ λ°μ ꡬν μ μμκΉ?
μλμ κ·Έλ¦Όμ μ°Έκ³ νλ©΄ √NκΉμ§ ꡬνλ©΄ μ½μ μ λ°μ κ°μλ₯Ό ꡬν μ μλ€λ κ±Έ μ μ μλ€. (μ΄μ λν μ¦λͺ μ μ¬κΈ° μ°Έκ³ )
1~√NκΉμ§ μ μ€ Nμ μ½μλ₯Ό κ΅¬ν΄ × 2λ₯Ό ν΄μ£Όλ©΄ λκ³ , μ½μκ° √NμΈ κ²½μ°μ μ κ³±κ·Όμ΄λ―λ‘ 1κ°λ‘ μΉ΄μ΄νΈν΄μ£Όλ©΄ λλ€.
μ΄ λ΄μ©μ μ½λλ‘ μμ±νλ©΄ μλμ κ°λ€.
int N = 1000000000;
int count = 0;
for (int i = 1; i * i <= N; i++) {
if (i * i == N) count++;
else if (N % i == 0) count += 2;
}
System.out.println(count);
μλλΉκ΅
λ°©λ²2λ‘ κ°μ μ νλ©΄ μ€νμκ°μ΄ O(√n)μΌλ‘ λ¨μΆλλ€.
μ€νμκ°μ λΉκ΅ν΄λ³΄λ©΄ μλμ κ°μ΄ μ°¨μ΄κ° λ§μ΄ λλ κ²μ νμΈν΄ λ³Ό μ μλ€.
[λ°©λ²1 μ€νμκ°]:3.63
[λ°©λ²2 μ€νμκ°]:0.001