SWUST OJ#189素数判定

SWUST OJ189

题目描述

给你两个数a、b,现在的问题是要判断这两个数组成的区间内共有多少个素数

输入

在这里插入图片描述

输出

在这里插入图片描述

样例输入

在这里插入图片描述

样例输出

在这里插入图片描述

源代码

#include<stdio.h>
int main()
{
	int a,b,i;
	int m,n,p;
	while(scanf("%d %d",&a,&b)!=EOF)//保证输入值格式正确
	{
		if(a>b)//用if语句使a,b值大小统一,便于利用for语句判断
		{
		m=a;
		a=b;
		b=m;	
		}
		for(i=a,p=0;i<=b;i++)//将程序运行控制在a,b之间
		{
			for(n=2;n<=i;n++)//在上一个for语句的范围里,判断i除以比它小的数能否整除
			{
				if(i%n==0)
				{
					break;//当满足一个取余等于0则可判断该i不为素数
				}
				
			}
			if(i==n)
			p++;//统计a,b内素数的总数
		}
		printf("%d\n",p);
	}
	return 0;
}

思路

素数的判定
(1)该数值y依次除以【2,y】区间的值,此时若其中一个满足取余为0,则该数为合数,如果除以任何该区间的值的余数都不为0,则该数为素数
这决定了此题需要循环语句和判断语句,而且需要需要至少一个镶嵌语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大林不要掉头发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值