功能如图所示:
实现原理:
将范围内的数分别循环除以2到自身-1的数,若除得余数不为零,则证明此数为素数。
额外注意:
当2在范围内,算法对2无效,要额外对2进行处理。
区间的规范使用,即x不能大于y
源代码:
#include <iostream>
using namespace std;
int main()
{
//声明计数
int count = 0;
//声明范围记为区间[x,y]
int x, y;
//获取x,y的值
cout << "请输入区间[x,y]中x,y的值" << endl;
cin >> x >> y;
//判断区间是否规范
if (x <= y)
{
printf("在区间[%d,%d]中的素数分别是:\n", x, y);
//使用范围内的数元素
for (int i = x; i <= y; i++)
{
//判断范围中是否有2
if (i == 2)
{
printf("2 ");
//如若有2则总数值加一
count++;
}
for (int h = 2; h < i; h++)
{
if (i % h == 0)
{
//判断 当 i能被整除时结束进程
break;
}
if (h >= i - 1)//防止循环中 出现并未完全判断i能不能被整除 提前输出
{
count++;
printf("%d ", i);
}
}
}
//换行
printf("\n");
//总结
printf("总共有%d个素数",count);
}
else
{
cout << "y不能小于x";
}
return 0;
}