JAVA
유클리드 호제법 공부함,,, ^^...
https://intheham.tistory.com/41
A > B, A ≠ B 일 때,
gcd(A, B) = gcd(B, r) = gcd(r, r1) ... = gcd(g, 0) = g
A = B * q + r ( q = A를 B로 나눈 몫, r = 나머지 )
(ex. 13 = 3 * 4 + 1 )
0 ≤ r < B < A (나머지가 B보다 클 리 없음)
gcd(A, B) = g 일 때, A = ga, B = gb
(단, gcd(a, b) = 1, 즉, a와 b는 서로소여야 함)
(A 와 B의 최대공약수가 g이면, A 와 B 모두 서로소(a, b)와 최대공약수(g)가 곱해진 값이다.)
A = B * q + r
ga = gb * q + r
r = ga - gbq
r = g ( a - bq )
편의상 ( a - bq ) 을 R 이라 할 때,
r / g = R 이라는 값을 가지므로, r은 g로 나눠질 수 있다고 볼 수 있다.
아까 B = gb 라고 했고, r = gR 이면,
B와 r은 g를 공약수로 지닌다는 걸 알 수 있다.
g가 B와 r의 최대공약수가 되려면, b와 R이 서로소여야 한다.
즉, gcd(b, R) = 1 이어야 함. 그리고 맞음. (증명방법은 영상 참고) https://youtu.be/Obs-HC5j5bI
즉!! B와 r의 최대공약수는 g 이다!!!!
★ 결론 ★
gcd(A, B) = gcd(B, r)
r은 A를 B로 나눈 나머지.
SQL
1. 어린 동물 찾기
2. 동명 동물 찾기
- group 함수를 쓴 조건을 쓰고 싶을 때는 where이 아니라 having 으로 해야 함.
- where -> group by -> having -> order by
3. 이름에 el이 들어가는 동물 찾기
- 이름에 el이 들어가는데 대소문자를 구분하지 않는다고 하니까 '%el%' 하고 'El%' 둘다 검색해야 함.
- and 가 or 보다 우선순위가 높아서 ( ) 로 묶어줌.
※ SQL 우선 순위 규칙
1. 산술 연산자 ( * / + - )
2. 연결 연산자( || )
3. 비교조건 ( =, >, >=, <, <=, <>(같지않음) )
4. is(not) null, like, (not) in
5. (not) between
6. not 논리 조건
7. and 논리 조건
8. or 논리 조건
왜 얘는 안 되지??
왜 where 절에서 type을 'Dog'으로 먼저 걸렀는데
왜 Cat이 출력되지?????????