C语言素数(质数)判断的三种方法

摘要

本文介绍了判断素数的3种方法,从素数的概念分析,确定找到素数的几个必要条件,设计思路,并将代码进行优化。此外,还使用自定义函数的形式将同样的思路进行实现。

方法1

素数是什么

素数,就是仅能被自身和1整除的数字。

条件分析

首先我们可以提取出判断素数的三个基本条件:

  1. 素数是整数
  2. 素数能被自身整除
  3. 素数能被1整除

设计思路

以一道题为例——
求100到200之间的所有素数并输出。

大体思路

  • 遍历
    • 首先,得到100到200间的所有数字(记为a)——for循环
    • 当 A%B==0时说明A被B整除了
    • 根据两个基本条件——a能被1整除,且a能被自身整除,所以除数(记为b)应为2到a-1间的所有数字——for循环
  • 设置判断条件
    • 当a%b==0时a不是素数
    • 设置标记变量flag,当a%b==0时令flag=1;后续循环没必要进行,因此设置break;结束该循环。
    • 特别注意flag何时初始化为0

具体代码实现

#include<stdio.h>

int main()
{
   
	int a, b, flag;
	for (a = 100; a <= 200; a++)	//得到100到200间的所有数字
	{
   
		flag = 0;				 //先假设a为素数 
		for (b = 2; b < a; b++)	 //注意,不要忘了自身也能被整除!
		{
   
			if (a % b == 0)
			{
   
				flag = 1;  //若出现不能整除的情况,则令flag为1 
				break;
			}

		}						//标记变量——flag
		if (0 == flag)
			printf("%d ", a);
	}
	
  • 17
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值