2017-10-13 8 views
-2

私はこのコードをこれまで持っていますが、正しい入力を得られません。 2からユーザーが入力する番号まで素数を印刷する必要があります。私は間違って何をしていますか?ユーザー入力まで素数を出力するJavaプログラム

import java.util.Scanner; 
public class Exhibit2 { 
    public static void main(String args[]) { //forgot to add main 
     System.out.println("This program takes the user input and prints the prime numbers until that number"); 
     System.out.println ("Enter Number:"); 
     Scanner sc = new Scanner(System.in); 
     int num = sc.nextInt(); 
     for(int i=2;i<num;i++){ 
      for(int j=2; j<i; j++){ 
      if(num%j == 0){ 
       System.out.print(" "); 
      } 
      else{ 
       System.out.print(i); 
      } 
      } 
     } 
    } 
} 
+0

何が問題なのですか? –

+4

あなたは数学を間違っています。まず、コードが[プライムであるかどうかを判断する](https://stackoverflow.com/questions/9625663/calculating-and-printing-the-nth-prime-number)コードを正しく記述する必要があります。その後、素数を出力するループを作成します。 – azurefrog

+0

問題は、 'j'で割り切れる場合は' i'の代わりに 'num'をテストすることです。 – Henry

答えて

0

私は、特定の数と始点までの素数を見つけるプログラムを作成しました。私はこれをしばらく前に書いており、より良い方法があると確信していますが、開始番号を選択して指定されたポイントまで続けることができます。

public static void main(String[] args) { 

    System.out.println("This program takes the user input and prints the prime numbers until that number"); 
    System.out.println ("Enter Number:"); 
    Scanner sc = new Scanner(System.in); 
    num = sc.nextInt(); 

    long startValue = 0; 
    long primeNumbersToTest = num; 
    for (long i = startValue; i < primeNumbersToTest; i++) { 
     if (findPrime(i).equals("Prime")) { 
      System.out.println(i + " is Prime"); 
     } else { 
      System.out.println(i + " is not Prime"); 
     } 
    } 
} 

public static String findPrime(long num) { 

    boolean isPrime = true; 
    for (long i = 2; i <= num/i; i++) { 
     if ((num % i) == 0) { 
      isPrime = false; 
      break; 
     } 
    } 
    if (isPrime) 
     return "Prime"; 
    else 
     return "Not Prime"; 
} 

それはそうのような最初の10出力:これは0からまともな速度で入力されたintにあなたの素数を出力します

0 is Prime 
1 is Prime 
2 is Prime 
3 is Prime 
4 is not Prime 
5 is Prime 
6 is not Prime 
7 is Prime 
8 is not Prime 
9 is not Prime 
10 is not Prime 
0
import java.util.Scanner; 

public class Main { 
    public static void main(String args[]) { 
     System.out.println("This program takes the user input and prints the prime numbers until that number"); 
     System.out.println ("Enter Number:"); 
     Scanner sc = new Scanner(System.in); 
     int num = sc.nextInt(); 
     int i = 0; 
     while(i<=num) { 
      if(isPrime(i)) { 
       System.out.println("Prime Number: "+i); 
      } 
      i++; 
     }  
    } 

    public static boolean isPrime(int n) { 
     if(n > 2 && (n & 1) == 0) 
      return false; 
     for(int i = 3; i * i <= n; i += 2) 
      if (n % i == 0) 
       return false; 
     return true; 
    } 
} 

を。

関連する問題