それでは、最初のプログラミング コース、最初の無段階課題: C++ で、10 億から 10 億までの範囲の数値について、1 から 99 までのすべてで割り切れる (剰余なしで) 数値の合計を見つけます。1:99 で割り切れる最小の数を見つけるにはどうすればよいですか?
編集:これは提出する方法ではなく、考えるべきことです。私は matlab である種のベクトル化を試みますが、これは C++ を試す最初の日なので、変数を初期化する方法を学んだだけで、本当にわかりません。
// In pseudocode a very basic algorithm:
main
for i: 1 to 1000000000
if (TestValue(i))
Output(i)
TestValue(i)
for j: 1 to 99
if j does not divide i evenly
return false
return true
もちろん、これはあまりパフォーマンスが高くありません。ある数値が 1 から 99 までのすべての数値で割り切れる場合、その数値は 1..99 の素因数のセットで割り切れる必要があることに気付くかもしれません。たとえば、1..19 の場合、素因数は 2、2、2、2、3、3、5、7、11、13、17、19 です。何かがすべての数 1..19 で割り切れる場合、 2*2*2*2*3*3*5*7*11*13*17*19 = 232792560 で割り切れる必要があります。 、代わりに 232792560 で割り切れる 1 から 1000000000 までのすべての数値を検索します。