오늘은 코딩을 해보았다.
Training 문제로 간단한 문제를 풀었다.


(Prime Factory 문제)



문제는 이렇다.
100만 이상의 숫자의 소수를 구한다.
그 소수의 합 또한 소수인 수를 구한다.

이런 소수를 2개 구한다.
그리고 이어주면된다.

예를 들어
1234567 과 2345678 을 구했다 치면
12345672345678을 답으로 적으면 된다.

이 문제를 풀기위해 소수의 합의 소수를 구해야해서
중복되는 코드가 있으므로 함수를 만들어서 사용했다.

첫번째로 만든 함수는 소수인지 판별하는 것이다.



(소수 판별 함수)



소수 판별 함수는
flag 변수를 두어서
만약 나누어지는 값이 발견되면 flag를 1로 주어 return하고
없다면 그대로 0으로 나간다.
즉 밖에서 보면 0이 나오면 소수이고 1이 나오면 소수가 아니다.


두번째로 구한 소수의 자릿수를 전부 더해주는 함수이다.



(자릿수 더하기 함수)



이 함수의 설명은 코드 보는 것과 같다.
각 자리수의 10의 거듭제곱으로 나누어 각 수를 더해서
return 한다.

이 두가지 함수를 이용해서
계산한다.

처음 시작은 100만으로 시작해서 하나씩 증가시키면서 검사한다.



(완성 코드)



두가지 변수에 가득 차면 반복문이 종료된다.



(실행 결과)



실행 결과를 복사 해서
정답에 넣으면!



(정답)



정답이 된다. :)

간단한 문제지만
30? 40분은 걸렸던거 같다..!

오랜만에 해서 그런가 보다
자주 해야겠다 :)



'WarGame > WeChall' 카테고리의 다른 글

WeChall - (Coding) Training: Programing 1  (0) 2017.01.26

+ Recent posts