문제) 1이상의 자연수를 입력받아 소수(Prime number)인지 여부를 리턴해야합니다.
#내가 작성한 답
//소수인지여부
//1과 자기자신
function isPrime(num) {
for (let i =2; num > i; i++) {
if(num % i === 0) {
return false;}
}
#반성
근접하게 생각을 하고 있지만 좀 더 노력이 필요할것 같다.
자세하게 적어보고 자세하게 생각해봐야할것같다.
그렇게 차근히 생각하면서 하나씩 정리해보면 답이 나올것 같다.
#풀이
// 입력: 1이상의 자연수
//출력: 소수인지 여부
//소수가 뭐냐 2,3,5,7,11
//1. 소수는 1보다 커야한다.
//2. 2를 제외한 짝수는 소수가 아니다(2만 소수)
//3. 3부터 자기자신 전까지 나누어 떨어지는 수가 하나라도 있으면 소수가 아니다.
//1. 소수는 1보다 커야한다.
function isPrime(num){
if (num === 1) {
return false;}
//2. 2를 제외한 짝수는 소수가 아니다(2만 소수)
if(num === 2) {
return true;}
if(num % 2 === 0) {
return false;}
//3. 3부터 자기자신 전까지 나누어 떨어지는 수가 하나라도 있으면 소수가 아니다.
for(let i=3; i < num; i++) {
if (num % i === 0) {
return false;}
return true;
#완성본
function isPrime(num){
if (num === 1) {
return false;
}
if(num === 2) {
return true;
}
if(num % 2 === 0) {
return false;
}
for(let i=3; i < num; i++) {
if (num % i === 0) {
return false;
}
return true;
}
'코플릿 기록 > JavaScript' 카테고리의 다른 글
배열 1번 (0) | 2023.01.23 |
---|---|
데일리코딩 7번 convertListToObject (0) | 2023.01.22 |
반복문 8번★★ (0) | 2023.01.16 |
반복문 7번 (1) | 2023.01.16 |
데일리코딩3 (거듭제곱문제) (0) | 2023.01.16 |