PS/백준(43)
-
[BOJ 11397] 피보나미얼
피보나치 수열 fn에 대해 Fn=f1f2f3⋅⋅⋅fn 으로 정의되는 수열 Fn이 어떤 수로 몇 번 나누어 떨어지는지 계산하는 문제이다. 이 문제의 핵심은 gcd(fn,fm)=fgcd(n,m)임을 이용하는 것이다. 주어진 수가 n이라 하고 직접 계산해보자. 또, Fn이 2로 나누어 떨어지는 횟수를 g2라고 하자. f3은 2이다. 그럼 f3m은 전부 2의 배수가 됨을 알 수 있다. g2+=⌊n3⌋ f6은 8이고 6은 3의 배수로 이미 한번 센 수를 빼면 2는 2개가 된다. g2+=$2\cdot \lfloor \frac..
2021.09.19 -
[BOJ 1770] 배수와 약수의 개수
문제는 다음과 같습니다. 양의 정수 n이 주어졌을 때, 다음 두 조건을 만족하는 양의 정수 x의 개수를 구해보자. - x는 n의 배수이다 - x의 양의 약수의 개수는 n개이다. x가 n의 배수이니 적어도 x는 n의 소인수들을 모두 갖고 있습니다. n=pc(p는 임의의 소수, c는 임의의 자연수)라고 해봅시다. 만약 임의의 소수 q에 대해 x=ppc−1−1qp−1이라면 q를 마음껏 정할 수 있기 때문에 경우가 무한개가 될 것입니다. 이를 만족하기 위해서는 pc−1−1≥c이면 됩니다. 가장 작은 소수인 2에 대해서 생각해봅시다. 2c−1≥c+1을 만족해야 합니다. 이 부등식은 c=3일 때부터 성..
2021.08.21 -
[BOJ 11778] 피보나치 수와 최대공약수
우리가 이용할 식은 아래와 같습니다. gcd(fn,fm)=fgcd(n,m) 위 성질을 증명해봅시다. gcd(fk+1,fk) gcd(fk+1,fk)=gcd(fk,fk−1)=gcd(fk−1,fk−2)=...=gcd(f2,f1)=1 fk|fnk n=1일 때 fk|fk임은 자명합니다. n=a일 떄 fk|fak라고 가정합시다. f(a+1)k=fakfk−1+fak+1fk 그럼 이때! 가정에 의해 fk|f(a+1)k가 성립합니다! 따라서 수학적 귀납법에 의해 fk|fnk라고 말할 수 있죠! $\gcd..
2021.08.21 -
[BOJ 10908] Phibonacci
피보나치 수열 F와 황금비 ϕ, 음이 아닌 자연수 n,k에 대해 어떤 정수 A,B가 아래 식을 만족할 때 A,B를 구하는 것이 우리의 목표에요! (Fnϕ+Fn−1)k=Aϕk+B 우린 한가지 성질을 알고 가야 하죠! ϕn=Fnϕ+Fn−1 이를 증명해봅시다. ϕn=Fnϕ+Fn−1 n=1일 때 ϕ=F1ϕ=ϕ 로 성립하네요. n=2일 때 ϕ2=F2ϕ+F1=ϕ+1 ⋅⋅⋅∗ ϕ는 방정식 x2=x+1의 한 근이므로 위 식 역시 성립해요. n=k일 때 $\phi^{k}=F_{k}\phi..
2021.08.21 -
[BOJ 19577] 수학은 재밌어
문제 제목부터 공감이 간다. 아무튼 문제를 풀어보자. 어떤 양의 정수 n이 있다고 할 때, xϕ(x)=n을 만족하는 양의 정수 x가 존재하는가? 이때 ϕ(x)는 오일러 피 함수이다. 사실 이 문제는 매우 간단하다! x가 n을 나누기 때문에 n의 약수를 찾으면 된다. 또 ϕ(x)를 계산해야하는데 이는 x를 인수분해 하면 되고 O(√x)이 걸린다. n의 약수를 인수분해 하므로 n의 가장 큰 약수가 시간복잡도에 지배적이라고 보면 O(√n)이라고 볼 수 있다. 약수를 찾는과정은 O(√n)의 시간이 걸린다. 따라서 전체 시간 복잡도는 O(2√n)이다. 오일러 피 함수 설계 방식을 설명하겠다. 이해가..
2021.08.16 -
[BOJ 13430] 합 구하기
이 문제에서 구하려는 함수는 다음과 같다. 함수 S는 다음과 같이 정의된다. S(0, n)=n (모든 양의 정수 n) S(k, n)=S(k−1, 1)+S(k−1, 2)+...+S(k−1, n) (모든 양의 정수 k, n) 이때 S(k,n)을 적절히 변형시켜보자. S(k, n)=S(k−2, 1)+[S(k−2, 1)+S(k−2, 2)]+[S(k−2, 1)+S(k−2, 2)+S(k−2, 3)]+... =nS(k−2, 1)+(n−1)S(k−2, 2)+(n−2)S(k−2, 3)+... 정의에 의해서 $= nS(k-3,\ 1) + (n-1)[S(k-3,\ 1)+S(k-3,\ 2)] + (n-2)[S(k-3,..
2021.08.15