Week 3 - 21.08.10
C++ 공부 9일차
오늘은 5일 차때 공부했던 함수에 대한 문제들을 풀었습니다.
- 6.3 (회문 정수)
정수를 역으로 한 값을 반환하는 reverse 함수와 수가 회문이면 참을 반환하는 isPalindrome 함수를 헤더 선언 후 사용하여, 사용자가 정수를 입력하고 입력한 정수가 회문인지를 알려주는 테스트 프로그램을 작성하여라.
(회문 : 수를 역으로 했을 때 같은 값인 수 / ex. 135 -> 531<X>, 131 -> 131<O>)
3 ~ 4 : 함수 reverse와 함수 isPalindrome의 헤더를 작성합니다.
8 ~ 10 : 사용자의 입력을 변수 number에 저장합니다.
12 ~ 15 : if문을 사용하여 isPalindrome(number)가 true이면 number가 회문이라고 출력하고,
false이면 number가 그저 숫자라고 출력합니다.
20 ~ 29 : 함수 reverse을 정의합니다. 정수를 역으로 한 값을 저장할 변수 res를 선언하고, while문을 사용하여 number 가 0보다 클 경우에만 반복을 하며, while문은 인자 number를 10으로 나눈 나머지 n은 기존의 res값에 * 10를 해준 뒤에 n를 더해줍니다. 반복문이 끝나면 역으로 한 값을 출력하고 res를 반환합니다.
31 ~ 36 : 함수 isPalindrome을 정의합니다. 인자 number가 reverse(number)와 같다면, 즉 입력받은 수와 역으로 한 수 가 같다면 true를 반환, 다르다면 false를 반환합니다.
아래는 해당 코드의 출력 결과입니다.
- 6.19 (수학: 쌍둥이 소수)
쌍둥이 소수(twin prime)는 두 수의 차가 2인 소수의 쌍이다. 예를 들어, 3과 5, 5와 7, 11과 13은 쌍둥이 소수이다. 1000보다 작은 모든 쌍둥이 소수를 구하는 프로그램을 작성하여라.
4 : 쌍둥이 소수를 구하고, 출력할 함수 prime의 헤더를 작성합니다.
6 ~ 11 : main 함수로, 함수 prime를 실행합니다.
13 ~ 30 : 함수 prime을 정의합니다.
- 14 ~ 15 : firstPrime과 secondPrime을 1로 선언합니다.
- 16 ~ 18 : while문을 사용하여 firstPrime이 1000보다 작거나 같을 때만 반복을 할 수 있게하고, 19번 줄의 for문에서 사용하는 변수 i를 미리 2로 선언합니다. 그리고 최대로 반복할 수 root를 선언합니다. root는 firstPrime의 제곱근입니다.
- 19 ~ 22 : firstPrime이 소수인지 검사합니다. 만약 소수라면 for문을 탈출합니다.
- 23 : i와 root를 검사하여, i가 root보다 크다면 해당 조건문을 수행합니다.
- 24 ~ 26 : 만약 firstPrime와 secondPrime의 차이가 2이면 25번 줄의 출력문을 출력합니다. 아니라면 secondPrime에 firstPrime의 값을 저장합니다.
- 28 : firstPrime의 값을 1 증가시킵니다.
아래는 해당 코드의 출력 결과입니다.