清华大佬花了三个月吐血整理了几百G资源免费分享! ....>>>
今天编程学习网就给大家讲解一下C语言编程中判断素数的思路和方法。 有需要的朋友可以参考:
素数也称为素数。 所谓质数,是指不能被除1和它本身之外的任何整数整除的数。 例如,17 是质数,因为它不能被 2 到 16 之间的任何整数整除。
思路1):因此,判断一个整数m是否为素数,只需将m除以2~m-1之间的每一个整数即可。 如果它不可整除,则 m 是素数。
思路2):判断方法可以简化。 m 不必除以 2 ~ m-1 之间的每个整数,只需除以 2 ~ 之间的每个整数即可。 如果 m 不能被 2 ~ 之间的任何整数整除,则 m 必须是素数。 例如,要判断17是否是质数,只需将17除以2到4之间的每个整数即可。由于它们不可整除,因此可以判断17是质数。
原因:因为如果m能被2~m-1之间的任意整数整除,那么它的两个因数必须有一个小于或等于,另一个大于或等于。 例如16可以被2、4、8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16,所以我们只需要确定是否有2到4之间的因数。可以。
想法1实现:#
int main() {
整数 n;
("请输入1-100之间的整数:\n");
scanf("%d", &n);
整数米 = 0;
for (int i = 2; i < n; i++ ) {
如果(n%i==0){
米++;
如果(m==0){
("%d是素数\n", n);
} 别的 {
("%d不是素数\n", n);
0;
想法2的实现:#
#
int main() {
整数 n;
("请输入1-100之间的整数:\n");
scanf("%d", &n);
整数 i = 0;
int q = sqrt(n);
对于 (i = 2; iq) {
("%d是素数\n", n);
} 别的 {
("%d不是素数\n", n);
0;
《C 和指针》4.14 - 2:
打印 1 到 100 之间的所有素数:
#
int main() {
整数数,;
(“1, 2”);
for (num = 3;num = num) {
(", %d", 数字);
(“\n”);
0;
结果:
1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
补充:确定素数的4种方法示例#
#
//方法一:从1-n中逐一判断;
布尔(整数n)
{ for(int i=2;i
如果(n%i==0)
错误的;
真的;
//方法二:以待判断数n的平方根作为判断结束的条件。
//因为平方根后的数是n的最大因数,所以最大因数后的数对于判断该数是否为素数没有任何意义。
布尔(整数n)
{ for(int i=2;i
如果(n%i==0)
错误的;
真的;
//方法三:只需要判断一半的数字即可。 如果超过自身的一半,
//余数的结果永远不会是0,除非是数字的余数。
布尔(整数n)
{ int 我;
如果(n%2==0)
0;
for(i=3;i=n/2;i+=2){
如果(n%i==0)
0;
1;
//方法四:从3-n中,只判断奇数。 首先判断一个数的奇偶性。 如果是奇数,
//只对3到自身的奇数进行余数计算。 同样,如果是偶数,则一定不是素数。
布尔(整数n)
{ int i,j=1;
如果(n%2==0)
0;
别的{
对于(i=3;i