오늘은 반복문에 대해서 풀어보았다.
1번 부터 어려웠다. #의 위치를 찾아서 그 위치의 값을 리턴하는 것
function findTheBug(word) {
let value = '#'
for(let i=0; i<word.length; i++) {
if(word[i]===value) {
return i;
}
}
return undefined;
}
3번 isOdd
function isOdd(num) {
if (num <0) {
num= Math.abs(num)
}
while(num>1) {
num=num-2;
}
if(num===1) {
return true;
}
else if (num===0) {
return false;
}
}
num가 0보다 작을때에는 절대값을 씌워준다
왜냐면 0보다 작아도 홀수 짝수 판별이 가능하기 때문이다.
17번 부터 풀어본다.
isPrime
수를 입력받아 소수(prime number)인지 여부를 리턴해야 합니다.
function isPrime(num) {
// TODO: 여기에 코드를 작성합니다.
for(let i=2;i<=Math.sqrt(num);i++) {
if(num %i===0) {
return false;
}
}
return true;
}
18번을 풀어본다.
listPrimes
수를 입력받아 2부터 해당 수까지의 소수(prime number)들을 리턴해야 합니다.
function listPrimes(num) {
// result = result + '-' + prime
let newStr = '2'
for(let i=3; i<=num; i++) {
if(isPrime(i)) {
newStr = newStr + '-' + i
}
}
return newStr;
}
function isPrime(num) {
// 2부터 num 반복을 시키는데 (i)
// num % i === 0 -> 나머지가 0이면 소수가 아님
for(let i=2; i <= Math.sqrt(num); i++) {
if(num % i === 0) {
// 소수가 아님
return false;
}
}
return true;
}
이거를 이중 포문으로 써서 하나로 만들어야됩니다.
function listPrimes(num) {
// TODO: 여기에 코드를 작성합니다.
let newStr='2';
for(let candi=3; candi<=num; candi+=2) {
let isPrime =true;
let sqrt = parseInt(Math.sqrt(candi));
for(let divider=2; divider<=sqrt ;divider++) {
if(candi%divider===0);
isPrime = false;
break;
}
if(isPrime) newStr+=`-${candi}`;
}
return newStr;
}