본문 바로가기
코플릿 기록/JavaScript

반복문 10번★★

by 뭉지야 2022. 12. 20.
728x90

반복문 10번

문제) 2이상의 자연수를 입력받아 2부터 해당 수까지의 소수들을 리턴해야합니다.

#내가 쓴 답

function listPrimes(num) {

//입력: 2이상의 자연수

//출력: 2부터 해당수까지의 소수

 

let output = '';

for (let i=2; i <= num; i++) {

if

}


#반성

지금봐도 j들어가는부분 잘 모르겟다 

더 공부하자!!!!!!


#풀이

//이중반복문

9번문제는 그냥 어떤수가 소수인지 판단

10번문제는 문자열로 리턴

num=12, '2-3-5-7-11'

외부반복문: 2부터 자기자신(num)까지 반복하면서 이 수가 소수인지 판단

내부반복문: 이 수가 소수인지 판단(9번문제)

 

주사기로 생각하고 다시 공부해봤다

6으로 예를들어보자

33 -> 나누면 나머지0 -> true니까 3된다.

34 -> j가 더 커서 안된다.

35 -> j가 더 커서 안된다.

36 -> j가 더 커서 안된다.

두자리증감이니까

53 ->나머지 2

54 ->나머지1

55 -> 나머지 0-> true니까 5된다.

56  -> j가 더 커서 안된다.


#정답

function listPrimes(num) {

let result = '2';

 

for (let i=3; i <=num; i+=2){

//3이후에는 짝수는 없으니까 증감을 2로 한다.

let isPrime = true;

 for (let j=3; j < i; j++) {

  if(i % j === 0) {

   isPrime = false;

}

}

//isPrime이 true인 경우도 있고 false인 경우도 있다.

//조건을 다시 분기해서, 만약에 true면 (소수면) result에 더해준다.

 

if(isPrime === true) {

   result = `${result} -${i}`

}

}

return result;

}

728x90

'코플릿 기록 > JavaScript' 카테고리의 다른 글

객체 15번 ★★  (0) 2022.12.30
calculator 구현과제  (0) 2022.12.27
반복문13번 ★★  (0) 2022.12.21
반복문 12번★★  (0) 2022.12.20
반복문 11번★★  (0) 2022.12.20