원본 본문으로 이동하기

소수 구하기 코드

박용서 - public static int[] 소수(int max) { if (max < 2) { return new int[0]; } int[] map = new int[max / 2 + 1]; map[0] = 2; // 2 를 세팅 int maxArraySize = 1; for (int n = 3 ; n <= max ; n+=2) { map[maxArraySize++] = n; } // 배열 0번 2는 예외처리 int zeroCount = 0; for (int i = 1 ; i < maxArraySize ; i++) { int div = map[i]; if (div == 0) { continue; } // 3번도 예외처리 for (int j = 2 ; j < maxArraySize ; j++) { int target = map[j]; // 대상이 같거나 || 예외처리 결과인 0일 경우 뛰어넘는다. if (target == div || target == 0) { continue; } else if (target % div == 0) { zeroCount++; map[j] = 0; } } } int rv[] = new int[maxArraySize - zeroCount]; for (int i = 0, pos = 0 ; i < maxArraySize ; i++) { int num = map[i]; if (num != 0) { rv[pos++] = num; } } return rv; } - 자바