Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数组中查找所有素数_Java_Arrays - Fatal编程技术网

Java 从数组中查找所有素数

Java 从数组中查找所有素数,java,arrays,Java,Arrays,我想创建一个程序,要求用户使用数组输入5个整数,并确定输入的所有素数。但是我有困难。有什么问题吗?我用JCreator来做这个 import java.util.Scanner; public class PrimeNumbers{ public static void main (String[] args){ int[] array = new int [5]; Scanner in = new Scanner (System.in); System.out.pri

我想创建一个程序,要求用户使用数组输入5个整数,并确定输入的所有素数。但是我有困难。有什么问题吗?我用JCreator来做这个

import java.util.Scanner;
public class PrimeNumbers{
public static void main (String[] args){
    int[] array = new int [5];
    Scanner in = new Scanner (System.in);

    System.out.println("Enter the elements of the array: ");
    for(int i=0; i<5; i++)
    {
        array[i] = in.nextInt();
    }
    //loop through the numbers one by one
    for(int i=0; i<array.length; i++){
        boolean isPrime = true;

        //check to see if the numbers are prime
        for (int j=2; j<i; j++){

            if(i%j==0){
                isPrime = false;
                break;
            }
        }
        //print the number
        if(isPrime)

            System.out.println(i + " are the prime numbers in the array ");
    }
}
}
import java.util.Scanner;
公共类素数{
公共静态void main(字符串[]args){
int[]数组=新的int[5];
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入数组的元素:”);

对于(int i=0;i您正在检查循环计数器,而不是数组中的值

for (int j=2; j<array[i]; j++){
    if(array[I]%j==0){
            isPrime = false;
            break;
        }
for(int j=2;j
publicstaticvoidmain(String[]args){
int[]数组=新的int[5];
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入数组的元素:”);
对于(int i=0;i<5;i++){
数组[i]=in.nextInt();
}
//把数字一个接一个地循环一遍
for(int i=0;i对于(int j=2;j您可以检查所有整数,直到所需数字的根为止

伪代码:
对于(i=2;i这里是更有效的代码查找素数。我们只需要检查奇数直到N的平方根,假设该数大于2

boolean isPrime(int n) {
        //check if n is a multiple of 2
        if (n%2==0) return false;
        //if not, then just check the odds
        for(int i=3;i*i<=n;i+=2) {
            if(n%i==0)
                return false;
        }
        return true;
    }
布尔isPrime(int n){
//检查n是否为2的倍数
如果(n%2==0)返回false;
//如果没有,那就检查一下赔率

对于(int i=3;i*i这是从给定数组中查找素数的最简单形式。我们也可以使用scanner,通过指定n而不是数组来检查给定输入中的素数(在程序中注释)。希望这对您有所帮助

public static void main(String[] arg) {
    int a[]= {1,2,3,4,5,6,7,8,9,10}; //int n=0 or n=values       
    int num =0;
    String  primeNumbers = "";
    for (int i = 0; i <= a.length; i++)  /*change a.length to n*/      
      {                   
         int counter=0;           
         for(num =i; num>=1; num--)
         {
        if(i%num==0)
        {
        counter = counter + 1;
        }
     }
     if (counter ==2)
     {
        //Appended the Prime number to the String
        primeNumbers = primeNumbers + i + " ";
     }  
      } 
      System.out.println("Prime numbers from given array :");
      System.out.println(primeNumbers);
   }
}
publicstaticvoidmain(字符串[]arg){
int a[]={1,2,3,4,5,6,7,8,9,10};//int n=0或n=value
int num=0;
字符串素数=”;
对于(int i=0;i=1;num--)
{
如果(i%num==0)
{
计数器=计数器+1;
}
}
如果(计数器==2)
{
//将素数追加到字符串
素数=素数+i+“”;
}  
} 
System.out.println(“给定数组中的素数:”);
System.out.println(素数);
}
}

由于您明确要求输入5个数字,代码已硬编码为5个数字

import java.util.Scanner;

public class PracticeTest {

  public static void main(String args[]) {
    int arr[] = new int[5];
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter 5 numbers");
    for (int i = 0; i < 5; i++) {
      arr[i] = sc.nextInt();
    }
    checkPrimeNumbers(arr);
  }

  public static void checkPrimeNumbers(int arr[]) {
    loop1:
    for (int j = 0; j < arr.length; j++) {
      loop2:
      for (int i = 2; i < arr[j]; i++) {
        if (arr[j] % i == 0) {
          continue loop1;
        }
      }
      System.out.print(arr[j] + " ");
    }
  }
}
import java.util.Scanner;
公开课实习测验{
公共静态void main(字符串参数[]){
int arr[]=新的int[5];
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入5个数字”);
对于(int i=0;i<5;i++){
arr[i]=sc.nextInt();
}
校验素数(arr);
}
公共静态无效校验素数(int arr[]{
循环1:
对于(int j=0;j
请详细说明您的问题所在。我希望输出如下:输入数组的元素–23 98 45 101 6数组中的所有素数都是–23 101,但它将0 1 2 3作为输出。请回答您的问题并在那里添加此信息,而不是在注释中。只需对已有建议答案的改进:为了测试一个数(n)是否为素数,可以检查该数是否可被2到平方根(n)之间的任何数整除。无需使用小于n的所有数字对其进行测试。这是一个利用该因子的示例实现。我认为print语句有问题。我已经尝试了您的代码,它输出0和3。我想要这样的结果,但无法将其转换为Java,所以我用System.out.println(数组[I]+“是数组中的素数”)解决了它;给我输出:23是数组中的素数101是数组中的素数。谢谢你的帮助。但我现在的问题是如何输出,23,101是数组中的素数?
public static void main(String[] arg) {
    int a[]= {1,2,3,4,5,6,7,8,9,10}; //int n=0 or n=values       
    int num =0;
    String  primeNumbers = "";
    for (int i = 0; i <= a.length; i++)  /*change a.length to n*/      
      {                   
         int counter=0;           
         for(num =i; num>=1; num--)
         {
        if(i%num==0)
        {
        counter = counter + 1;
        }
     }
     if (counter ==2)
     {
        //Appended the Prime number to the String
        primeNumbers = primeNumbers + i + " ";
     }  
      } 
      System.out.println("Prime numbers from given array :");
      System.out.println(primeNumbers);
   }
}
import java.util.Scanner;

public class PracticeTest {

  public static void main(String args[]) {
    int arr[] = new int[5];
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter 5 numbers");
    for (int i = 0; i < 5; i++) {
      arr[i] = sc.nextInt();
    }
    checkPrimeNumbers(arr);
  }

  public static void checkPrimeNumbers(int arr[]) {
    loop1:
    for (int j = 0; j < arr.length; j++) {
      loop2:
      for (int i = 2; i < arr[j]; i++) {
        if (arr[j] % i == 0) {
          continue loop1;
        }
      }
      System.out.print(arr[j] + " ");
    }
  }
}