0

私は非常に大きなノーセイ「x」(10 ^ 18)と数字「z」が6と言います。1からx(10 ^ 18)の範囲の数字がいくつあるかをACコードを使用して知り/計算しようとしていますzで割り切れる。そのために私は単純なループを使用しています

While(x)
{
    if(x % z == 0)
       {
          count++;
        }
     --x;
  }

ただし、このコードは1からxまでのすべての値をチェックしているため、予想どおりに時間がかかりすぎています。上記のコードを最適化しても同じ結果を得ることができる既知のアルゴリズムまたは手法はありますか?助けてくれてありがとう。

4

1 に答える 1

7
count = floor(x / z);

明らかに、を保持するのに十分な大きさのデータ型が必要になりますx

于 2012-04-06T17:44:55.417 に答える