4

在做我的项目时,我需要使用 mysql 找到整数的素因数分解,我认为这是除了做所有递归事情之外查询的有效方法。

而我想要实现的是找到组成整数的素数。

例如:对于102,阶乘数为:17 , 3 , 2

谢谢你。

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 回答