반복문 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;
}
'코플릿 기록 > 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 |