π§ μ½λ©ν
μ€νΈ
[μΈνλ° C++] 28. N!μμ 0μ κ°―μ
peewoong
2024. 4. 23. 20:14
π§ λ¬Έμ
μμ°μ Nμ΄ μ λ ₯λλ©΄ N! κ°μμ μΌμ μ리λΆν° μ°μμ μΌλ‘ 0μ΄ λͺ κ° μλμ§ κ΅¬νλ νλ‘κ·Έλ¨μ μμ±νμΈμ.
λ§μ½, 5! = 120 = μΌμ μ리λΆν° μ°μμ μΈ 0μ κ°―μλ 1κ°μ΄λ€.
λ§μ½, 12! = 479001600μΌλ‘ μΌμ μ리λΆν° μ°μμ μΈ 0μ κ°―μλ 2κ°μ΄λ€.
π§ μ λ ₯
12
π§ μΆλ ₯
2
π§ 1νΈ (κ°μ νμ΄)
10μ΄ μΌλ§λ μλκ°? λ₯Ό νμΈνλ©΄ λλ€. π 10 = 2 * 5 μ΄λ―λ‘, κ°μ μμΈμλΆν΄νμ¬ 2μ 5μ κ°―μλ₯Ό νμΈνλ€.
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main(void){
//freopen("input.txt", "rt", stdin);
int n, j, tmp;
int cnt1 = 0, cnt2 = 0;
cin >> n;
for(int i = 2; i <= n; ++i){
tmp = i;
j = 2;
while(true){
if(tmp % j == 0){
if(j == 2){
cnt1++;
}
else if(j == 5){
cnt2++;
}
tmp = tmp / j;
}
else{
j++;
}
if(tmp == 1) break;
}
}
if(cnt1 < cnt2){
cout << cnt1;
}
else{
cout << cnt2;
}
return 0;
}