소수의 정의란?
소수(素數, [소쑤])는 수학에서 1과 그수 자신 이외의 자연수로는 나눌 수 없는, 1보다 큰 자연수이다.
소수를 찾기위해, RAPTOR를 이용하여 Flowchart 를 만들어보았다.
먼저 자연수 하나를 입력으로 받고 , 2부터 1씩 증가시키면서 나눈다.
1부터 시작하지 않는 이유는 1로 나누면 몫이 자기 자신이기 때문에 2부터 시작해서 1씩 증가시킨다.
그래서 나누어지는 수를 넘지 않을 때 까지 for문 loop를 돌린다.
연산을 한 뒤, 나머지가 0이 된다면 소수가 아닌 것이다. (ex. 9 % 3 의 나머지는 0, 9는 소수가 아님)
그래서 나머지를 result라는 변수에 담고 if문을 사용하여 result가 0이 된다면 not_prime_number에 1을 할당한다. (not_prime_number 변수는 0으로 초기화 한 상태)
그리고, not_prime_number 변수 값이 1이라면 소수가 아닌것이고 0이라면 소수인 것이다.
사실 if문에서 else 는 사용하지 않아도 됐는데, RAPTOR에서 화살표가 두 갈래로 나눠지기 때문에 작성을 했었것 같다. 쓸 필요가 없는 구문이었다. 이렇게 flowchart를 잘못 만들면 코드도 잘못 작성되기 때문에 더욱 주의해야 할 것 같다.
(교수님도 지적하신 부분)
작성한 코드이다. 마찬가지로 else문은 필요가 없다.
'알고리즘' 카테고리의 다른 글
C언어 백준 알고리즘 11047번 (동전0) (0) | 2023.01.05 |
---|---|
C언어 - 백준 알고리즘 1065번 (한수) (0) | 2023.01.05 |
C언어 - 백준 알고리즘 4344번(평균은 넘겠지) (0) | 2022.12.21 |
C언어 - 백준 알고리즘 2884 알람시계 (0) | 2022.04.12 |
C언어 - 백준 알고리즘 10926번 (0) | 2022.04.10 |