inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Java로 배우는 자료구조

소수의 개념을 알겠지만 원리를 모릅니다.. 그냥 외워야 할까요?

787

Jeong Hei Hyun

작성한 질문수 12

0

1이랑 또 다른 숫자하나?

정도로 소수를 정의하고 있습니다

수학적으로 n/2 이런거 이해가 안갑니다..

그냥 소수찾을때 공식처럼 외워서 사용해도 되는 걸까요?

문과라.. 휴 어렵네요

java

답변 1

1

Gg G

소수란 약수가 1과 자기 자신뿐인 자연수 

여기서 약수란 말이 나오기 때문에 약수가 뭔지 알아야 겠죠. 쉽게 말해서 나누어 떨어지는 수라고 생각하면 됩니다.

즉 다시 풀어서 설명하면 나누어떨어지는 수가 1과 자기자신 뿐인 자연수
가령 10을 보겠습니다.

10은 나누어떨어지는 수(약수)가1과 10(자기자신) 뿐인가요?
아니죠, 10은 2로도 나누어떨어지고, 5로도 나누어떨어집니다. 1, 2, 5, 10 이 10의 약수가 되겠네요
나누어 떨어진다는 말은 다시말해 나머지가 없다는 말과 같습니다.

즉 문제의 정의를 다시 생각해보면
가령 10의 소수의 개수를 찾아? 소수를 찾아라? 라고 한다면
1과 10 이외의 숫자로 나누어 떨어지는 것(약수)이 있는 지 확인해보면 되겠죠?


또한 왜 n/2 까지만 반복문을 돌리냐?
그 원리는 간단합니다. 

10의 약수는 1, 2 , 5, 10 
18의 약수는 1, 2, 3, 6, 9, 18 

보시면 알겠지만 전부 짝을 이룹니다. 1 * 10 = 10, 2*5 = 10, 1 * 18 = 18, 2*9 = 18, 3*6 =18
10의 중앙 10/2 = 5 를 기점으로 그전에 있는 수로 나누어 떨어지는 지 떨어지지 않는 지만 체크해도 충분하기 때문입니다.
그렇기 때문에 문제에서는 i < n  이 아닌 i < n/2 를 사용하고 있는 것입니다.  i < n 해도 아무런 지장은 없습니다.

연습문제 자료들 어디서 볼 수 있을까요

3

966

0

강의자료 어디서 보나요

0

817

0

변수, 배열, 반복문에서 이중for문

1

856

1

섹션1,섹션2의 연습문제에 대한 코드 공유

0

324

0

교수님이 말씀하신 반복문 수업 끝날 때 말씀해주신 연습문제 답 코드 어딨는지 아시는 분계시나요 도와주세요

0

286

0

강의노트를 못 찾겠습니다 ㅠㅠ

0

644

1

오버라이딩

0

405

1

강의자료는 어디서 볼수있나요??

0

495

1

2-1장 (클래스, 객체, 참조변수 3) 마지막 값이 덮어씌워지는 문제

0

214

0

추상클래스와인터페이스 관련강의

0

219

0

왜 main 함수 안에서 함수를 정의하면 오류가 나는 건가요?

0

4249

1

for구문에서 {}

1

277

2

강의자료 소스코드는 따로 없는건가요?

0

306

1

자바 IDE 선택에 대한 질문입니다.

0

372

1

inner class에 대한 질문

0

247

0

remove(index) 구현 질문

0

337

1

훌륭한 코드를 볼때 마다 감탄스럽습니다.

0

334

0

교수님이 자랑 스럽습니다.

0

209

0

상속 3에 예제 2의 영상이 올라와있어요~

0

215

0

3,4 순서가 바뀌어서 업로드 되어 있습니다

0

184

0

강의 노트는 어디서 확인할 수 있나요?

0

558

3

휼륭한 강의 감사합니다.

2

241

0

코드의 차이점이 뭔가요 ??

0

235

1

add와 remove 메소드를 사용할때, size-1에 대한 질문

0

219

1