「java素数筛选」java筛选质数
本篇文章给大家谈谈java素数筛选,以及java筛选质数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
编写java程序找出2-100之间的所有素数 求大神
素数又称质数,有无限个。素数定义为在大于1的整数中,除了1和它本身以外不再有其他因数的数称为素数。
java程序找出2-100之间的所有素数,代码如下:
public void findPrimeNumber(){
//存放素数集合
ListInteger lists=new ArrayListInteger();
//遍历2-100
for(int x=2;x100;x++){
//标志是否为素数,默认是true
boolean flag=true;
//循环x除以(x/2)的数,能整除则不是是素数(不包含2)
for(int y=2;yx/2;y++){
if(x%y==0){
//能整除,则把标志设置为false,不是素数
flag=false;
break;
}
}
if(flag){
//flag还是true,则是素数
lists.add(x);
}
}
System.out.println("2-100的素数集合:"+lists);
}
结果:
2-100的素数集合:[2, 3, 4, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
java筛法求N以内素数个数
prime[k]数组越界了。
没必要搞这么复杂吧。
public class Test{
public static void main(String [] args){
System.out.println("Welcome new world:++"+add(13));
}
public static int add(int n){
int cnt=0;
for(int i=2;i=n;i++){
boolean flag = false;
for(int j=2;ji-1;j++){
if(i%j==0){
flag = true;
}
}
if(!flag){
cnt ++;
}
}
return cnt;
}
java 判断是不是素数
判断number是否是素数有这么几种方法:
(1)用2至number-1之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
(2)用2至number/2之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
(3)用2至number的平方根之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
这3种的方法的效率是逐渐提高的。下面列出了第3种方法的实现:
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
int number; // 输入的数字
Scanner input = new Scanner(System.in);
System.out.println("请输入数字");
number = input.nextInt(); // 输入数字
if(isPrimeNumber(number)){
System.out.println(number + "是一个素数");
}
else{
System.out.println(number + "是一个非素数");
}
}
public static boolean isPrimeNumber(int num){
if(num 2){
System.out.println("数据错误");
return false;
}
int k = (int)Math.sqrt(num); //num的平方根
int i;
for(i=2; i=k; i++){ //依次用2..k之间的数去整除num,如果没有一个数能被整除,说明num是素数
if(num % i == 0){
break;
}
}
if(i k){
return true;
}
return false;
}
}
如果对你的程序进行修改,也可这样:
public static void main(String[] args) {
int number;// 输入的数字
int j = 2;
Scanner input = new Scanner(System.in);
System.out.println("请输入数字");
number = input.nextInt();// 输入数字
for(j=2;jnumber;j++){
if(number%j == 0) {
System.out.println("这不素数");
break;
}
}
if(j=number)
System.out.println("这是素数");
}
用java写一个程序,判断输出1~100之内的素数?
素数是指只能被1和自身整除的数,所以先定义一个函数判断一个数是否是素数,接着从1到100for循环判断。
package baidu;
public class Test {
public static boolean fun(int n){
if(n2) return false;
for(int i=2;in-1;i++)
if(n%i==0) return false;
return true;
}
public static void main(String[] args) {
int k=0;
for (int n = 1; n = 100; n++) { // 1~100的所有数
if(fun(n)){
System.out.print(n+" ");
k++;
if (k % 5 == 0) // 每输出5个则换行
System.out.println();
}
}
}
}
/* 运行结果:
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
*/
java素数筛选的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java筛选质数、java素数筛选的信息别忘了在本站进行查找喔。