문제
내가 작성한 정답
import java.util.*;
class Solution {
public int solution(int n) {
int[] cnt = new int[n+1];
for(int j=1; j<=n; j++){
for(int i=1; i<=j; i++){
if(j%i==0) cnt[j]++;
}
}
return (int)Arrays.stream(cnt)
.filter(i->i>=3)
.count();
}
}다른 사람들의 정답
import java.util.stream.IntStream;
class Solution {
public int solution(int n) {
return (int) IntStream.rangeClosed(1, n)
.filter(i -> (int) IntStream.rangeClosed(1, i).
filter(i2 -> i % i2 == 0)
.count() > 2)
.count();
}
}
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=4; i<n+1; i++){
if(i%2==0) {
answer++; // 4이상 짝수는 전부 합성수
continue;
}
else{
for(int k=3; k<i/2; k=k+2){
if(i%k==0){
answer++;
break;
}
}
}
}
return answer;
}Share article