プログラマ[小数を検索]


小数点を検索


問題の説明


1から入力した数字nまでの小数を返す関数を作成します.
小数は1とそれ自体の数です.
(1は小数ではありません.)

せいげんじょうけん

  • nは2以上100000以下の自然数です.
  • I/O例


    nresult10453

    I/O例#1


    1から10の間の小数は[2,3,5,7]の4個であるため,4を返す.

    I/O例#2


    1から5の間の小数は3を返します.[2,3,5]の3つがあるからです.
    import java.util.*;
    
    class Solution {
        public int solution(int n) {
            int[] answer = new int[n + 1];
            answer[0] = 1;
            answer[1] = 1;
            
            for(int i = 2; i < Math.sqrt(n) + 1; i++){
                for(int j = 2*i; j < n + 1; j+=i){
                    answer[j] = 1;
                }
            }
            return Math.toIntExact(Arrays.stream(answer).filter(a -> a != 1).count());
        }
    }
    function solution(n) {
        const answer = new Array();
        
        for(let i = 0; i < n + 1; i++){
            answer.push(i);
        }
        answer[0] = -1;
        answer[1] = -1;
        
        for(let j = 2; j < Math.sqrt(answer.length); j++){
            for(let k = 2*j; k < n + 1; k += j){
                answer[k] = -1;
            }
        }
        return answer.filter(a => a != -1).length;
    }