Рубрики
Uncategorized

Основное количество установленных битов в

Автор оригинала: David Wong.

Ссылка на Заголовок

762. Простое число заданных битов в двоичном представлении

Анализ названия

Для каждого целого числа в заданном диапазоне возвращает количество раз, когда число 1 отображается в двоичной форме в виде простого числа.

Например, 11111, 1 появляется пять раз, а 5-простое число. Другой пример-10111. 1 появляется четыре раза. 4 не является простым числом.

размышляющий

Поскольку объем темы фиксирован как 1 ~ 10 ^ 6, мощность 10 ^ 6 равна 10 миллионам. Менее 2 ^ 24. То есть, произойдет не более 24 раз, не более 1.

Поскольку количество простых чисел меньше 24 ограничено, мы напрямую записываем простые числа в пределах 24.

Для каждого числа подсчитайте количество вхождений, равное 1. Затем определите, находятся ли времена появления в простом массиве.

Если есть номер, соответствующий требованиям заголовка, в противном случае он не будет включен в номер.

Окончательный код

php
class Solution {

    /**
     * @param Integer $L
     * @param Integer $R
     * @return Integer
     */
    function countPrimeSetBits($L, $R) {
        $primes = [2,3,5,7,11,13,17,19,23];
        $nums = range($L,$R);
        $primeOnes = 0;
        foreach($nums as $num){
            $ones = array_filter(str_split(decbin($num)), function($val){
                return $val == '1';
            });
            if(in_array(count($ones),$primes)){
                $primeOnes++; 
            }
        }
        
        return $primeOnes;
    }
}

Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.