最小の整数P
を見つけて、{1,2,..., P}
の素数の数がP/6
より少なくなるようにしたいと考えています。MATLAB - この条件を満たす無限集合の最初の整数を見つけるにはどうすればよいですか?
私は(長い)試行錯誤を通じて答えがあると思いますが、MATLABを通じてこれを確認する方法を知りたいと思います。
最小の整数P
を見つけて、{1,2,..., P}
の素数の数がP/6
より少なくなるようにしたいと考えています。MATLAB - この条件を満たす無限集合の最初の整数を見つけるにはどうすればよいですか?
私は(長い)試行錯誤を通じて答えがあると思いますが、MATLABを通じてこれを確認する方法を知りたいと思います。
isprime
を使用すると、配列内の値が素数であるかどうかを確認できます。私たちは、整数N
までのすべての整数を確認したい場合は、私たちは、与えられた整数N
まで発生しているどのように多くの素数私たちは、この論理行列のcumsum
(累計)
% You can change this to the maximum number that you'd like to consider for P
N = 2000;
possible_P_values = 2:N; % We omit 1 here since it's not a prime number
primes = isprime(possible_P_values);
を行うことができます
nPrimes_less_than_or_equal_to_P = cumsum(primes);
次に、possible_P_values
を6で割って、ある点までの素数がその数より少ないかどうかを調べることができます。
is_less_than_P_over_6 = nPrimes_less_than_or_equal_to_P < (possible_P_values ./ 6);
はその後、我々は、私はあなたが最初のPを探していることを前提としていfind
possible_P_values(find(is_less_than_P_over_6, 1, 'first'))
% 1081
優れています。非常に役立ち、明確に説明されています - ありがとうございます! –
で最初のoccuranceを識別することができます:{1}は何の素数と0が含まれていないので、P> 1、<1/6 。 – rossum
私はそれを置いた、変更されている必要があります。 –