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,则该数为素数
这决定了此题需要循环语句和判断语句,而且需要需要至少一个镶嵌语句