快速求素数序列方法
定理:如果n不是素数,则n有一个素数因子d,并且满足: 1 < d <= sqrt(n)
证明:如果n不是素数, 则由定义,n有一个因子d满足: 1 < d < n,如果d大于sqrt(n), 则n/d是满足1<n/d<=sqrt(n)的一个因子,根据因式分解,如果d不是素数,则d可以分解,最终得到一个n的素数因子
这样的话就可以直接定义一个素数序列来判断了,而不用逐一或者逐二(跳过偶数)来寻找因子
1 |
|
快速求素数序列方法
定理:如果n不是素数,则n有一个素数因子d,并且满足: 1 < d <= sqrt(n)
证明:如果n不是素数, 则由定义,n有一个因子d满足: 1 < d < n,如果d大于sqrt(n), 则n/d是满足1<n/d<=sqrt(n)的一个因子,根据因式分解,如果d不是素数,则d可以分解,最终得到一个n的素数因子
这样的话就可以直接定义一个素数序列来判断了,而不用逐一或者逐二(跳过偶数)来寻找因子
1 | #include "cstdio" |