자바스크립트

소수 문제

2022. 9. 23. 21:09

- 소수 여부 판별 방법

// 매개변수 n이 소수라면 true를, 소수가 아니라면 false를 반환 isPrime(n) { //나누는 숫자는 2부터 시작 let divnum = 2; ​​​​//1은 소수가 아님 ​​​​if (n == 1) { ‌​​​​return false; ​​​​} ​​​​ ​​​​//n보다 작은걸로 나누는데 나누어떨어지면 false ​​​​while(n > divnum) { ‌​​​​if(n % divnum === 0) { ‌‌​​​​return false; ‌​​​​} else { ‌‌​​​​divnum++ ; ‌​​​​} } ​​​​//관문을 다 거치고도 살아남았다면 소수! ​​​​return true; }

- 소수의 합 구하기 (var버전)

//소수들을 더해야 하니 0부터 더해나가자 var result = 0; // 1부터 200까지의 자연수 for(var num = 1; num <= 200; num++){ ​​​​// 1로는 당연히 나누어지므로 나누는 수는 2부터 시작 for(var divnum = 2; divnum < num; divnum++){ ‌​​​​// 자기자신보다 작은수인데 나누어떨어지면? ‌​​​​if (num % divnum === 0){ ‌​​​​​​​​// 바로탈락. 다음 숫자(num) 검증하기. ‌​​​​​​​​break; ​​​​​​​​} ​​​​// for문 지나쳐서 내려오는 경우는 num===1이거나, num===divnum ​​​​// 하지만 1은 소수가 아니라서 애초에 언급X ​​​​} if(num === divnum){ ‌​​​​//지금 자기자신으로만 나누어지는 수가 바로 소수! 더해더해 ‌​​​​result += num; ​​​​} /* 여기서 else 케이스 넣어줘도 되지만 필요 X */ } document. write(result);

14번 라인이 가능한 이유는 변수 선언을var로 했기 때문!

var 선언이 어디서 선언하던지 전역스코프로 지원되어버리는 특성이 있어서..

let사용 시 해당 for문 안에서만 divnum이 존재한다.(로컬스코프)

https://sunnyscript.tistory.com/55

 

 

 

- 소수의 합 구하기 (let버전)

// -------------if조건 &&으로 묶음----------------- let result = 0; // 1부터 200까지 중에서 for(let num = 1; num <= 200; num++) { for(let divnum = 2; divnum <= num; divnum++){ ‌​​​​// divnum===num을 위에서 확인해줘야 2가 소수로 포함이 된다 ​​​​​​​​if(num % divnum === 0 && divnum === num){ ​​​​​​​​​​​​result += num; ​​​​​​​​}else if (num % divnum === 0 && divnum !== num){ ​​​​​​​​​​​​break; ​​​​​​​​} ​​​​} } document.write(result); //-------------------if조건 분리------------------- let result = 0; for(let num = 1; num <= 200; num++) { ​​​​for(let divnum = 2; divnum <= num; divnum++){ ​​​​​​​​if(num%divnum===0){ ​​​​​​​​​​​​if(divnum===num){ ​​​​​​​​​​​​​​​​result += num; ​​​​​​​​​​​​}else{ ​​​​​​​​​​​​​​​​break; ​​​​​​​​​​​​} ​​​​​​​​} ​​​​} } document.write(result);

== 값이 같은지 비교

=== 데이터 유형까지 같은지 비교

!= 값이 다름 비교

!== 데이터유형까지 다름 비교 (!=== 가 아님)

'자바스크립트' 카테고리의 다른 글

애니매이션 만드는 법  (0) 2022.10.08
외부문서를 연결해주는 <link>  (0) 2022.10.07
Math.random 랜덤숫자 활용하기  (0) 2022.09.09
event 설정  (0) 2022.09.08
document.getElementBy~ 알아보기  (0) 2022.09.08