因为我们提优班有一道题:分解质因数(写成质因数为底的幂的连乘积)
1.593
2.1859
3.1287
前两个我分了好久,把1-100的质数都试了,但是还没试出来,所以我想问一下
怎样快速地看出一个数是否为质数?(求好方法)
有丰厚悬赏分!!!!!!!!!!!!!!!!!
怎样快速地看出一个数是否为质数?(求好方法)
答案:4 悬赏:70 手机版
解决时间 2021-02-03 13:45
- 提问者网友:低吟詩仙的傷
- 2021-02-02 14:36
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-02-02 15:27
末尾是0或5的肯定不是,因为它们是5的倍数,末尾是0.2.4.6.8的肯定也不是,因为,它们是2的倍数,一个数的数字之和是3肯定也不是,因为它们是3的倍数,还有,质数除了2以外其他的都是单数
全部回答
- 1楼网友:慢性怪人
- 2021-02-02 18:10
import java.io.*;
import java.util.scanner;
public class io{
static void prtzhishu(int num){
for(int i=1; i<=num; i++){
if( i % 2 != 0 && i % 3 != 0){
system.out.println(i);
}
}
}
public static void main(string[] args){
scanner sc = null;
try{
sc = new scanner(system.in);
while(true){
system.out.println("请输入一个大于1的数字,输入0程序结束");
int n = sc.nextint();
if(n == 0) break;
prtzhishu(n);
}
}catch(exception e){
e.printstacktrace();
}finally{
if(sc != null){
try{
sc.close();
}catch(exception ioe){}
}
}
}
}
- 2楼网友:忘川信使
- 2021-02-02 17:17
1 朴素筛法,就是直接试除
2 若a是n的因子,那么n/a也是n的因子,所以如果n有一个大于1的真因子,则必有一个不大于n的1/2次方的因子
3 进一步的,如n是合数,他必有一个素因子不大于n的1/2次方,如要检测一个m以内的数是否为素数需事先建立一个m的1/2次方以内素数表。
4 Miller-Rabbin算法
5 概率算法
6 无条件的素数测试(包含APR算法 Jacobi sum测试 等)
7.n的n次幂除以n,若余数为2,则n为质数
- 3楼网友:独钓一江月
- 2021-02-02 16:35
先确认那个数是不是偶数或5的倍数,如果是则是合数。
然后再分别除以3和7,如有余数,则是质数,反之,就是合数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯