输出m到n之间的素数
//直接上代码吧
//C语言实现
#include<stdio.h>
//先来写一个函数判断一下是不是素数
int isPrime(int x) //C 语言没有提供布尔型变量,这里我们用int型代替,真返回1,假返回0
{
if(x == 0) return 0; //0是不是素数?思考素数的定义
if(x == 1) return 0; //1是不是素数呢?
if(x == 2) return 1; //2是第一个素数
for(int i = 2;i<x;i++)
{
if(x%i == 0) return 0; //挨个往上除,只要余数为0则结束
}
return 1; //否则就是素数
}
int main() //接下来写主函数
{
int m,n;
printf("输入下限m和上限n:");
scanf("%d %d",&m,&n);
for(int i = m;i <= n;i++)
{
if(isPrime(i))
printf("%d ",i);
}
return 0;
}
JAVA实现
import java.util.Scanner; //导入输入类
public class Prime{
public static void main(String [] args){
Scanner input = new Scanner(System.in); //创建输入类
int m,n; //下限m和上限 n
System.out.print("请输入下限m和上限n:");
m = input.nextInt();
n = input.nextInt();
int j = 0; //控制输出列的个数
for(int i = m;i<=n;i++){
if(isPrime(i)){ //若判断结果为素数则输出
System.out.print(i+" ");
}
}
}
public static boolean isPrime(int x){ //判断函数
if(x == 0) return false; //与上方一致
if(x == 1) return false;
if(x == 2) return true;
for(int i = 2;i<x;i++){
if(x%i == 0) return false;
}
return true;
}
}
回顾一下数学上对于素数的定义:只有1和它本身两个因数,因此0,1,2既不是素数也不是合数。