Java 显示前100个素数的程序未显示

Java 显示前100个素数的程序未显示,java,primes,Java,Primes,我是Java新手,我已经在互联网上搜索了一个小时的答案,但什么也找不到 我正在尝试创建一个程序,以这种格式显示前100个素数: First One Hundred Primes: 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 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 2

我是Java新手,我已经在互联网上搜索了一个小时的答案,但什么也找不到

我正在尝试创建一个程序,以这种格式显示前100个素数:

First One Hundred Primes:
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 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349
353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541
编辑:^此格式也应右对齐

我不确定当我尝试在控制台中运行它时,为什么它没有显示任何内容。 不,我的代码还没有完全完成。 请帮我解释为什么它没有显示,以及我做错了什么,谢谢!:)

这是我现在的代码:

public class PrimeNumbers {

    public static void main(String[] args) {
        final int DIVISOR = 1;
        boolean isPrime;
        int test1 = 0;
        int test2 = 0;
        int num = 1;
        int count = 0;

        while(count < 101) {
            test1 = num/DIVISOR; //divides number by 1
            test2 = num%num; //gets remainder of number

            if (test1 == num && test2 == 0 && num > 1) //checks if test 1 is the same as num, test2 equals to 0 and if num is greater than 1
                isPrime = true;
            else
                isPrime = false;

                if (isPrime == true) {
                    System.out.format("%3.3f");
                    System.out.println("First One Hundred Primes:");
                    System.out.print(num);
                }
        }

    }
}
公共类素数{
公共静态void main(字符串[]args){
最终整数除数=1;
布尔互质;
int test1=0;
int test2=0;
int num=1;
整数计数=0;
而(计数<101){
test1=num/divisior;//将数字除以1
test2=num%num;//获取数字的剩余部分
if(test1==num&&test2==0&&num>1)//检查test1是否与num相同,test2是否等于0,num是否大于1
isPrime=true;
其他的
isPrime=false;
if(isPrime==true){
System.out.format(“%3.3f”);
System.out.println(“前一百个素数:”);
系统输出打印(num);
}
}
}
}

您应该在每个循环中增加
num
,并且在找到素数时也应该增加
count


哦,你的除数不能是1,也不能是最终的:)对于你的每个数字,你应该试着用2到1之间的除数值来除掉它-看看它是否是一个素数。

你应该在每个循环中增加
num
,并且每当你找到素数时,你也应该增加
count


哦,你的除数不能是1,也不能是最终的:)对于你的每个数字,你应该试着用2和1之间的除数值来除掉它-看看它是否是质数。

如果这是家庭作业,请相应地标记


考虑您的
while
循环。循环是如何退出的?考虑你的计数器,它们是什么时候递增的?

< P>如果这是作业,请相应地标记。


考虑您的
while
循环。循环是如何退出的?考虑一下你的计数器,它们是什么时候递增的?

我想你应该重新考虑一下你的代码设计:

  • 创建一个方法
    boolean isPrime(inti)
    ,如果i是素数,则返回true,否则返回false
  • 测试该方法是否返回了一些数字的预期值(真/假),以使您确信您的算法是有效的
  • 循环处理从1到Integer.MAX_值的整数,并使用上面的方法检查每个整数:如果它是素数,则打印它并增加计数
  • 当计数达到100时停止

    • 我认为您应该重新考虑代码的设计:

      • 创建一个方法
        boolean isPrime(inti)
        ,如果i是素数,则返回true,否则返回false
      • 测试该方法是否返回了一些数字的预期值(真/假),以使您确信您的算法是有效的
      • 循环处理从1到Integer.MAX_值的整数,并使用上面的方法检查每个整数:如果它是素数,则打印它并增加计数
      • 当计数达到100时停止
      素数: 基于此,您需要修改您的程序:-
      1.进行两次循环
      2.一个是计数素数的外循环: 基于此,您需要修改您的程序:-
      1.进行两次循环

      2.一个是计数的外循环,所以基本上你需要做的是有一个函数来检查一个数字是否是素数。在此之后,您必须从2开始计数,并将每个数字传递给该函数。如果它返回true,则打印它并记录找到素数的事实。当你这样做100次,你可以停止。以下代码正好实现了这一点:

      public class OneHundredPrimes
      {
          public static boolean isPrime(int x)
          {
              for (int i = 2; i <= Math.sqrt(x); i++) {
                  if (x % i == 0) {
                      return false;
                  }
              }
      
              return true;
          }
      
          public static void main(String[] args)
          {
              int currentNumber = 2;
              int primesFound = 0;
      
              while (primesFound < 100) {
                  if (isPrime(currentNumber)) {
                      primesFound++;
      
                      System.out.print (currentNumber + " ");
                      if (primesFound % 10 == 0) {
                          System.out.println();
                      }
                  }
      
                  currentNumber++;
              }
          }
      }
      
      公共类一百次
      {
      公共静态布尔值iPrime(int x)
      {
      
      对于(int i=2;i所以基本上你要做的是有一个函数来检查一个数字是否为素数。之后,你必须从2开始计数,并将每个数字传递给该函数。如果它返回true,打印它并记录你找到素数的事实。当你这样做100次时,你可以停止。下面的代码实现了实际上:

      public class OneHundredPrimes
      {
          public static boolean isPrime(int x)
          {
              for (int i = 2; i <= Math.sqrt(x); i++) {
                  if (x % i == 0) {
                      return false;
                  }
              }
      
              return true;
          }
      
          public static void main(String[] args)
          {
              int currentNumber = 2;
              int primesFound = 0;
      
              while (primesFound < 100) {
                  if (isPrime(currentNumber)) {
                      primesFound++;
      
                      System.out.print (currentNumber + " ");
                      if (primesFound % 10 == 0) {
                          System.out.println();
                      }
                  }
      
                  currentNumber++;
              }
          }
      }
      
      公共类一百次
      {
      公共静态布尔值iPrime(int x)
      {
      对于(inti=2;i
      class-StackOfInteger){
      私有int[]元素;
      私有整数大小;
      公共静态最终int默认_容量=2;
      公共堆栈集成器(){
      尺寸=0;
      元素=新整数[默认容量];
      }
      公共堆栈集成器(内部容量){
      元素=新的整数[容量];
      }
      公共整数推送(整数值){
      如果(大小>=元素长度){
      int[]temp=新int[elements.length*2];
      系统阵列复制(元素,0,温度,0,元素长度);
      元素=温度;
      }
      返回元素[size++]=值;
      }
      公共int-pop(){
      返回元素[--size];
      }
      公共int peek(){
      返回元素[大小-1];
      }
      公共布尔空(){
      返回大小==0;
      }
      公共int getSize(){
      返回大小;
      }
      }
      公共类JavaApplication82{
      公共静态void main(字符串[]args){
      //此处的TODO代码应用程序逻辑
      字符串getInput=JOptionPane.showInputDialog(“拿你的屎!”);
      int input=Integer.parseInt(getInput);
      getPrime(输入);
      }
      公共静态void getPrime(int getInput){
      StackOfInteger堆栈=新的StackOfInteger();
      int-dem=4;
      栈推(2);
      堆栈推送(3);
      做{
      if(isPrime(dem)
      
      class StackOfInteger {
          private int[] elements;
          private int size;
          public static final int DEFAULT_CAPACITY = 2;
      
          public StackOfInteger() {
              size = 0;
              elements = new int[DEFAULT_CAPACITY];
          }
      
          public StackOfInteger(int capacity) {
              elements = new int[capacity];
          }
      
          public int push(int value) {
              if (size >= elements.length) {
                  int[] temp = new int[elements.length * 2];
                  System.arraycopy(elements, 0, temp, 0, elements.length);
                  elements = temp;
              }
              return elements[size++] = value;
          }
      
          public int pop() {
              return elements[--size];
          }
      
          public int peek() {
              return elements[size - 1];
          }
      
          public boolean empty() {
              return size == 0;
          }
      
          public int getSize() {
              return size;
          }
      }
      
      public class JavaApplication82 {
          public static void main(String[] args) {
              // TODO code application logic here
              String getInput = JOptionPane.showInputDialog("Get your shit !");
              int input = Integer.parseInt(getInput);
              getPrime(input);
          }
      
          public static void getPrime(int getInput) {
              StackOfInteger stack = new StackOfInteger();
              int dem = 4;
              stack.push(2);
              stack.push(3);
              do {
                  if (isPrime(dem) == true) {
                      stack.push(dem);
                      dem++;
                  } else
                      dem++;
              } while (dem <= getInput);
              while (!stack.empty())
                  System.out.println(stack.pop() + " ");
          }
      
          public static boolean isPrime(int getNumber) {
              int dem1 = 0;
              int[] arrayTest = new int[getNumber];
              for (int i = 2; i <= getNumber; i++) {
                  arrayTest[i] = i;
              }
              for (int i = 2; i < getNumber; i++) {
                  if (getNumber % arrayTest[i] == 0)
                      dem1++;
                  else
                      continue;
              }
              if (dem1 != 0)
                  return false;
              else
                  return true;
          }
      }
      
      public class Primes
      {
          public static boolean isPrime (int x)
          {
              for (int i = 2; i <= Math.sqrt (x); i++)
              {
                  if (x % i == 0)
                  {
                      return false;
                  }
              }
              return true;
          }
      
          public static void main (String[] args)
          {
          new Primes().findprimes(100);  // <<--here you can choose whatever k prime
          }
      
          public void findprimes (int k){
          for (int i = 2, primesfound = 0; primesfound < k+1 ; i++)
          {
              if (isPrime (i))
              {
                  primesfound++;
                  System.out.print (i + " ");
              }
          }   
        }
      }
      
      public class prime {
          public static int Prime(int n,int counter)
          {
              if(n<=3 && n>0)
              {
                  return n;
              }
              if((n-counter)==n || n%(n-counter)>0){
                  counter++;
                  return Prime(n,counter);
              }
              else if((n-counter)>1 && n%(n-counter)==0){
                  return 0;
              }
              else
                  return n;
          }
          public static void main(String[] args) {
              int k=0,found=0;
              for(int i=1;found<100;i++){
                  k=Prime(i, 0);
                  if(k>0){
                     found++;
                     System.out.println(k);
                  }
              }
          }
      }
      
      package com.mehmood.nisar;
      
      public class Myclass {
      
          public static void main(String [] args)
          {
              int status = 0;
      
              for (int i = 2; i < 100; i++) {
      
                  status =0;
                  for (int j = 2; j < i; j++) {
      
                      if(i %2 == 0)
                      {
                          status = 1;
                          break;
                      }
      
                      try {
                          if(i % j == 0)
                          {
                              status = 1;
                              break;
                          }
                      } catch (Exception e) {
                          System.out.println(e.getMessage());
                      }
      
                  }//break;
      
                  if(status == 0)
                  {
                      System.out.println(i);
                  }
              }
          }
      }