【问题标题】:Program to print first m prime numbers in the first n positive integers打印前 n 个正整数中的前 m 个素数的程序
【发布时间】:2022-01-16 03:40:35
【问题描述】:

编写一个程序,生成并打印前 n 个正整数中的前 m 个素数。

示例: n=10,m=2 在 1-10 个自然数的范围内,我必须生成 m=2(2 个正素数) 输入:10 2 输出:2 3

我的代码: 注意=尝试用 java 回答

import java.util.Scanner;
class Main5{
static Scanner sc=new Scanner(System.in);
 static boolean isPrime(int n){
     //since 0 and 1 is not prime return false.
     if(n==1||n==0) return false;

   //Run a loop from 2 to n-1
     
   for(int i=2; i<=n/2; i++){
       
       // if the number is divisible by i, then n is not a prime number.
       if(n%i==0)return false;
   }
   //otherwise, n is a prime number.
   return true; }

public static void main (String[] args)
   {
       int n=sc.nextInt();
       int m=sc.nextInt();
       //check for every number from 1 to N
       for(int i=1; i<=n; i++){
         if(i==m){
               break;
           }
           //check if current number is prime
           if(isPrime(i)) {
             System.out.print(i + " ");
           }
       }
   }
   }
  

【问题讨论】:

    标签: java performance primes solver prime-factoring


    【解决方案1】:

    您可以使用该方法,但对于大数而言它会很慢,并且您必须为每个质数查询执行该代码。如果您有能力和时间,也许您可​​以考虑这种技术:https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 1970-01-01
      • 2022-11-04
      • 2013-03-26
      • 2020-03-31
      • 2023-04-07
      • 2016-01-06
      • 2015-06-12
      • 2023-02-01
      相关资源
      最近更新 更多