4

私のプロジェクトを実行している間、mysql を使用して整数の素因数分解を見つける必要があります。これは、すべての再帰的なことを行う以外に、クエリの効率的な方法だと思います。

私が達成したいのは、整数を構成する素数を見つけることです。

例: 102の場合、階乗数は1732になります。

ありがとうございました。

4

1 に答える 1

1

エンベロープ戦略の裏側 (ステップ 2 にはプログラムされたループが必要)

  1. 単一の int 列 (主キー) を持つテーブル「primes」を作成します

  2. このループを実行します。

    for $x = 2 to $n {
      execute("
        insert into primes (id) 
        select $x where not exists 
         (select * from primes as p where p.id <= sqrt($x) AND ($x mod p.id) > 0)")
    }
    
  3. 上記のサブクエリを使用して、特定の $x の結果を一覧表示します

このソリューションは、$n^2 までの値に対して機能します。ステップ 2 は、最後の数字が 1、3、7、9 の 9 を超える数字のみをテストすることで改善できます。

于 2012-07-07T12:20:00.947 に答える