比1大的整數中,除了1和它本身以外,不再有別的因數,這種整數叫做質數或素數
要判斷x是否為質數,就從2一直嘗試到x-1的做法效率是最差的! 其實只要從2一直嘗試到√x,就可以了。因為因數都是成對出現的。比如,100的因數有:1和100,2和50,4和25,5和20,10和10。看出來沒有?成對的因數,其中乙個必然小於等於100的開平方,另乙個大於等於100的開平方。
package hardcode;
public class 素數_質數
}if(flag)
} }}
package hardcode;
public class 素數_質數
}if(j>(int)math.sqrt(i))
} }}
package hardcode;
public class 素數_質數
}if(flag)
} }}
package hardcode;
public class 素數_質數
}if(flag)
} }}
求素數的幾種方法
素數,也稱為質數,其只能被1或者自身整除的自然數 不包括1 換而言之,只有兩個正因數的自然數稱為素數。與之相對的比1大但不是素數的自然數稱為合數。1和0既不是素數也不是合數,合數由若干個質數相乘得到。顯然根據定義就能判斷乙個數n是否為素數,具體的,對其從2到sqrt n 進行除法,判斷是否存在餘數為...
求質數 素數 的方法
質數是數學重要的一環,所謂質數,就是除了1和它本身外不存在任何因子的數。以下整理了一下c語言中質數的求法。問題 輸入乙個正整數n n 2 求不大於n的全部質數 方法一 迴圈法 思路 判斷乙個數n是不是質數,可以用2到 n之間的所有整數去除n,如果都不能整除,那麼n是質數。設計迴圈巢狀時盡量跳過一些不...
求素數(質數)的幾種演算法對比
查詢指定範圍的自然數的所有質數,實現起來並不難,但是哪種演算法效率最高,速度最快才是重點,我列出幾種演算法 1 將待判斷的值與小於它而且不小於2的所有數求餘數 public static listgetprimev1 int max if flag system.out.println 迴圈次數 t...