2020年3月8日 星期日

[zerojudge]a121. 質數又來囉

a121. 質數又來囉

決定使用比較懶的方法,BigInteger再度出場,大材小用,牛刀割雞,把你用在這邊真是抱歉哈~

        if(big(元a)是質數) // 因為不管怎樣下面的迴圈都會執行一次,導致sum+1,所以如果a是質數的話要先-1,免得加兩次
            sum = -1
        else
            sum = 0
        
        while(big <= b){
            big = 下一個可能質數
            sum++
        }
    
很棒吧,只是單單輸出sum還不夠,因為不知道哪一筆資料會讓sum = -1,想破頭也想不出來什麼樣的情況會讓sum = -1,索性在sum == -1時輸出0
可能是真的有BUG吧,阿彌陀佛。

程式碼如下:

  1. /* Pa121.java
  2. * a121. 質數又來囉
  3. *
  4. * 科皓不要
  5. * 2020/3/8
  6. */
  7.  
  8. import java.util.Scanner;
  9. import java.math.BigInteger;
  10.  
  11. public class Pa121{
  12.  
  13. public static void main(String[] args){
  14. Scanner scanner = new Scanner(System.in);
  15.  
  16. while(scanner.hasNext()){
  17. BigInteger big = new BigInteger(scanner.next());
  18. BigInteger b = new BigInteger(scanner.next());
  19. int sum = big.isProbablePrime(1000)? 0: -1;
  20.  
  21. while(big.compareTo(b) != 1){
  22. big = big.nextProbablePrime();
  23. sum++;
  24. }
  25.  
  26. System.out.println(sum == -1? 0: sum);
  27. }
  28.  
  29. }
  30. }

沒有留言:

張貼留言