输入两个整数a和b,输出a和b之间的素数。
输入
有多组数据,每组包括两个整数a和b。
输出
a和b之间的素数,每组输出一行,每个素数后面有1个空格。
样例输入
2 10
8 23
样例输出
2 3 5 7
11 13 17 19 23
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a, b;
while (cin >> a >> b)
{
if (a > b)
{
int mid = a;
a = b;
b = mid;
}
for (double i = a; i <= b; i++)
{
bool flag = true; //初始假设是素数
for (int j = 2; j <= sqrt(i); j++)
{
if ((int)i%j == 0)
{
flag = false; //但凡能被一个整除,就证明不是素数
break;
}
}
if (flag == true)
{
cout << i << " ";
}
}
}
return 0;
}
//补充一种java的写法
import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
while(in.hasNext()) {
int a=in.nextInt();
int b=in.nextInt();
if(a>b) {
int mid=a;
a=b;
b=mid;
}
if(a==1)
a++;
for(int i=a;i<=b;i++) {
boolean mid=true;
for(int j=2;j<=sqrt(i);j++) {
if(i%j==0) {
mid=false;
break;
}
}
if(mid==true) {
System.out.print(i+" ");
}
}
}
}
}