本文目录一览:
怎样用Java求1~10000中的所有质数最简便的方法
运用java8新特性stream来解决
参考以下代码
/**
* IntStream.range(1,10001) :获取一个stream,是从1-10000的
* filter: 取出stream每个数字进行过滤,比如选取数字300,则再构造一个stream,从2-299,依次用300取余2-299中的数,若有一个是整除,余数为0的话,这个数字就不是我们要找的质数,跳过
* forEach:打印经过filter过滤后的stream中的每个数
*/
IntStream.range(1,10001).filter(outerInt- !IntStream.range(2,outerInt).anyMatch(innerInt-outerInt%innerInt==0))
.forEach(System.out::println);
java给定一个二维整数数组,找出其中的质数
public class PrimeNumber {
public static void main(String[] args) {
int[][] a=new int[][]{{7,12,4,9,6},{3,9,6,47,54}}; //新建二维数组
//用两个循环来遍历二维数组
for(int i=0;i2;i++){//数组有两行
for(int j=0;j5;j++){//数组有5列
if (isPrime(a[i][j])) {// 调用isPrime()方法判断数组的元素是否是质数
System.out.println(a[i][j]);// 若isPrime()方法返回true,输出是素数
}
}
}
}
/**
* pre
* 用于判断一个数是否为素数,若为素数,返回true,否则返回false
* /pre
*
* @param a
* 输入的值
* @return true、false
*/
public static boolean isPrime(int a) {
boolean flag = true;
if (a 2) {// 素数不小于2
return false;
} else {
for (int i = 2; i = Math.sqrt(a); i++) {
if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
flag = false;
break;// 跳出循环
}
}
}
return flag;
}
}
用JAVA语言求质数
程序如下,希望有所帮助
public class Prime {
//判断质数
public static void isPrime(int num) {
int j = 2;
for (; j = Math.sqrt(num); j++) {
if (num % j == 0) {
System.err.println(num + "不是质数!");
return;
}
}
if (j Math.sqrt(num)) {
System.err.println(num + "是质数!");
return;
}
System.err.println(num + "不是质数!");
return;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.err.println("请输入数字:");
int num = sc.nextInt();//接收输入
isPrime(num);//判断是否为质数
}
}
java质数怎么求100-200
public class PrimeNumber {
/**
* 质数,只能被1和自身整除
* @param args
*/
public static void main(String[] args) {
for (int i = 100; i = 200 ; i++) {
/*
标识位:true表示质数,false表示非质数
假定每个数一开始都是质数
*/
boolean flag = true;
for (int j = 2; j i ; j++) {
/*
从2开始除,只要余数为0就表示这个数能被其他数整除
然后将标识位设置为false,然后跳出内层循环执行
*/
if (i % j == 0){
flag = false;
break;
}
}
/*
根据标识位来判定是否是质数,是的话就输出
*/
if(flag){
System.out.println("质数:" + i);
}
}
}
}