-9

それでは、最初のプログラミング コース、最初の無段階課題: C++ で、10 億から 10 億までの範囲の数値について、1 から 99 までのすべてで割り切れる (剰余なしで) 数値の合計を見つけます。1:99 で割り切れる最小の数を見つけるにはどうすればよいですか?

編集:これは提出する方法ではなく、考えるべきことです。私は matlab である種のベクトル化を試みますが、これは C++ を試す最初の日なので、変数を初期化する方法を学んだだけで、本当にわかりません。

4

1 に答える 1

2
// 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 までのすべての数値を検索します。

于 2015-05-19T20:27:12.447 に答える