[Baekjoon] 15996. 分割工場[S 4]


📚 質問する
https://www.acmicpc.net/problem/15996
N! 1つの整数kを求めて、小数Aのkの平方を除く時、残数は0です.
1からNまでAの倍数を確認します.
NをAで割ってAの倍数の個数を求めることができる.
N以下Aの倍数:N // ANをAで2回割った分を求めると、A^2の倍数を求める.
上記の手順を繰り返し、N/AがAより小さい場合は実施を停止する.
📒 コード#コード#
n, a = map(int, input().split())
m = n // a  # a의 배수의 개수
cnt = m     # cnt는 a의 배수의 개수를 담는다.

# cnt에 A의 배수의 개수를 담고
# 반복문 한 번 시행 : A^2의 배수의 개수를 담고
# 반복문 두 번 시행 : A^3의 배수의 개수를 담는다.
# 반복문 N 번 시행 : A^N의 배수의 개수를 담는다.
# 위 반복문을 반복해 A의 총 누적곱을 담는 것이다.
while m >= a:
    m //= a     # 반복문을 시행할수록 a^(시행횟수+1)의 배수의 개수
    cnt += m

print(cnt)
🔍 結果