자바 공부를 이제 막 시작한 왕초보 입니다. 주석 좀 달아주세요~~
이치코
안녕하세요 이제 막 자바길로 가고 있는데요
학원에서 소수만 프린하는 프로그램을 짜오라고 하는데요
워낙 모르겠어서 다른분이 해 놓은걸보고 있는데요 주석 좀 달아 주실수 있을까요?
특히 for(i=2; i=100; i++){ 이부분 밑으로는 이해가 잘 안되서요 ㅠ.ㅠ
고수님들 부탁 드립니다.
public class Day05_5 {
public static void main(String[] args) {
int i=0;
int j=0;
for(i=2; i=100; i++){
for(j=2; j=i; j++){
if(i%j==0)
break;
}
if(i==j){
System.out.printf(%d , i);
}
}
}
}
-
겨레
음 일단 소수는 그 아래 수로는 나누면 나눠 떨어지지 않고 나머지가 생깁니다.
소수인지 확인할 대상이 i
소수 밑 수가 j이고
i%j==0,즉 나눠 떨어지면 이제 다음 i체크하러 넘어갑니다
이정도면 이해되셨을지...
아 참고로 위 예제는 최적의 코드는 아닙니다. -
코이
참고로, 위의 경우 for문의 최대 수치가 100이니 가로x세로 100칸짜리 모눈 종이가 하나 있으면 충분하며,
컴퓨터로 실행하기전에 직접 머리 속으로 i와 j값을 1씩 증가 시키면서 기록하시기 바랍니다.
무식하게 느껴질지 모르겠지만 제가 컴퓨터가 없던 초등학생 시절에 즐겨 사용하던 방법이며,
문법을 정확하게 이해하는데도 많은 도움을 얻을 수 있으리라 봅니다.
문법도 완벽하게 이해했음에도 이해가 안된다면 소수에 대한 이해 부족이기때문에
이해가 되기 전까 -
진달래
항상 하는 말이지만....
일단 소수를 구하는 알고리즘에 대한 이해가 있어야 합니다.
시중에서 알고리즘 관련 서적들을 찾아 보시면 예제와 설명이 있으니 참고하시고..
위의 경우 커다란 종이하나 준비하신뒤..
가장 궁금해 하시는 부분인 for문 안의 모든 변화를 일일이 종이에 직접 기록해보세요.
예를들어, 위의 경우 2중 for문이니까 i와 j값의 모든 변화에 따라서
화면에 출력되는 값을 일일이 적어 본 후 종이를 잠시 바라보시면 충분히 이해 할 수 -
희1미햬
이렁겅 솔찍히 자바하고는 별로 상관이 없어보입니다
그냥 수학일뿐..
어떤 문제를 논리적으로 해결하는 방시에대한 학습으로 보이는 군요 도움을 받을 성향이 전혀 아닌것 같다는 생각이드네요...
답변이아니라서 지송