0101011001010111

정예반 숙제 : 조건문, 반복문 '소수'인지 아닌지 판별기 만들기 본문

Kotlin/★정예★반 숙제

정예반 숙제 : 조건문, 반복문 '소수'인지 아닌지 판별기 만들기

[진주] 2023. 8. 9. 15:21
728x90
반응형

숙제 내용 : 

  • 사용자가 입력한 숫자가 소수인지 판별하기
  • 입력 예시 : 7
  • 출력 예시 : 소수 맞네요.

문제에서 소수란 무엇일까?

소수 : 1보다 큰 자연수 중에서 1과 자기 자신만을 약수로 가지는 수이다.

예 ) 2의 약수 : 1,2 / 7의 약수 1, 7 

1과 자신만의 약수로 갖는 수로 어떤수의 약수가 2개이면 그 수 는 소수이다.

 


일단 조건은 1과 , 입력한 수로만 나뉘어져야한다

이 말은, 1과 나자신 의 나머지 값만 (%) 0이 되고  그 사이의 나머지 수들은 모두 나머지가 생긴다면 그 수는 소수이다.

 

일단, 숫자를 입력할 수 있는 칸을 만들고

fun main() {
    println("소수 판독기")
    println("숫자를 입력해주세요.")
    val number = readLine().toInt()
fun main() {
    println("소수 판독기")
    println("숫자를 입력해주세요.")
    val number = readLine()?.toInt()


    for (a in 2 ..number-1) {
        var answer = number % a
        if(answer != 0){                //number % a의 값이 모두 0이 아닐 경우를 넣고싶음
            println("$number 은 소수입니다.")
        }else {
            println("$number 은 소수가 아닙니다!!")
        }
    }
}

라고 썻는데

망함

이거 아님 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

일단 아까 위에서 썼던, 입력란 

val number = readLine()?.toInt()

이부분이 틀렸어서 고쳤고,

 

힌트를 받았다! 

 

1.2.3.4 건건이 하는게 아니고 isSOSU라는 타입의 변수를 하나 만들고

반복문 돌면서 

isSOSU가 트루인지 펄스인지

만약 한번이라도 펄스면 펄스다.

 

'ㅇ' 라는 힌트를 받았다.

 

마치 고고학자가 된 기분이다.

 

뭔가 콧구멍 앞에 얇은 먼지가 들어왓다 나갓다 하는데 잡히질 않아............

 

좀더 고민해보도록하자 .


먼저. isSOSU라는 변수를 만들어보자.

fun main() {
    println("소수 판독기")
    println("숫자를 입력해주세요.")
    val number = readLine()?.toInt()
    var isSosu?

    for (a in 1<...<number){}
}

...?

ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

ㅇ ㅓ ? 뭔가이상한거같아...

 

 

fun main() {
    println("소수 판독기")
    println("숫자를 입력해주세요.")
    val num = readLine()?.toInt()



    for(sosu in 2 until num) {
        if (num % sosu == 0)
            println("소수가 아닙니다.")
    }else{
        println("소수입니다.")
    }

}

 

쌤이 거의 다왔다고 하셨다!

 

 

저기 for랑 if에 넣은거 잘햇다고 해서 뿌듯해졌는ㄴ데 말입니다.

 

package com.example.myapplication

fun main() {
    println("소수 판독기")
    println("숫자를 입력해주세요.")
    val num = readLine()?.toInt()
    var isSosu = false

    for (a in 2 until num) {
        if (num % a == 0) {
            isSosu = false
            break
        } else {
            isSosu = true
        }

    }
}

if (isSosu){
    println("소수맞음!!!")
}else{
    println("소수가 아니네요.")
}

이거 썻드니 

ㅋㅋㅋㅋ 빨간 죽음의 느낌표 우르르르르르르를ㄹ 달려왔음.

 

갑자기 창밖에서도 먹구름 끼고 비올라함

 

ㅠㅠㅠㅠㅠㅠㅠㅠㅋㅋㅋㅋㅋㅋㅋㅋㅋ 뭐... 뭣이 문제인지...

하나 하나 살펴보자.

오...오류 ㅠㅠㅠㅠ 장마인가..? 장대처럼 쏟아내리넼ㅋㅋㅋㅋ 

 


13개 오류 죽인 ㄷ ㅏ 츠츠츠츠츠츠츠!! 

 

일단 이녀석의 문제는

val num = readLine()?.toInt()

내가 쓴 여기에 문제가 있는것같다 

 

여기 뒤에 ?: 나 !!을 넣어주면 될것같은데

?: 으로 넣으면 

아래 num은 정상이 되지만 뒤에 줄이 하나 더 생기고

!! 를 넣으면 ( 이건 넣지 말라고 하셨엇는데....... 완전히 이거 1000000% null없어!!! 라고 하는거라....)

완전히 클리어가 된다.

 

안전한 앨비스 연산자 ?:를 사용하여 코딩해보도록 하자.

앨비스 연산자는 ?:을 기준으로

null이 아니면 왼쪽것을 / null이면 오른쪽 것을 참조한다고 하였다.

 

만약, null이면 0으로 처리해버려! 

라고 말해주니까 이친구가 편= 안 했는지 

이제 11마리 남았다.

 

 

와 혹시혹시 

이친구가 메인 밖에 있어서 그랬나 ? 하고

싹 메인 안에 넣어주니까 11마리 바퀴벌레 전멸시켜부림 

우왕ㅋ왘왘왘왘왘와코아코앜!!!!

야호야호 !!!!

 

와앀ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

드디어 돌아간다 미쳤다!!!!

응ㅇ알아우앙아 ㅁㅇ나ㅣ럼;ㅣㅏㅇ넘ㄴ알

 

넘나 기뻐!!!!

728x90
반응형