2014年12月27日 星期六

java程式設計題目---公式計算【梅森質數(使用method)】

A prime number is called a Mersenne prime(梅森質數) if it can be written in the form 2^p-1 for some positive integer p.
Write a program that finds all Mersenne prime with p<=31 and displays the output as follows:
p     2^p-1
2         3
3         7
5         31
...


  1. public class C1
  2. {
  3. public static void main(String[] args)
  4. {
  5. int number = 2;
  6. System.out.print("p ");
  7. System.out.println("2^p-1");
  8. while(number <= 31)
  9. {
  10. int newnumber = (int)Math.pow(2, number) - 1;//計算2^p-1
  11. boolean a = isMersennePrimesNumber(newnumber);
  12. if(a == true)
  13. {
  14. System.out.print(number + " ");
  15. System.out.println(newnumber);
  16. }
  17. number ++ ;
  18. }
  19. }
  20. public static boolean isMersennePrimesNumber(int number)
  21. {
  22. boolean bool = false ;
  23. int remainder = 0;
  24. int factor = 0 ;
  25. for(int i = 1 ; i <= number ; i++)//計算此數的因數個數
  26. {
  27. remainder = number % i;
  28. if(remainder == 0)
  29. {
  30. factor = factor + 1;
  31. }
  32. }
  33. if(factor == 2)
  34. {
  35. bool = true ;
  36. remainder = 0;
  37. factor = 0 ;
  38. }
  39. else if(factor != 2)
  40. {
  41. bool = false ;
  42. remainder = 0;
  43. factor = 0 ;
  44. }
  45. return bool ;
  46. }
  47. }

沒有留言:

張貼留言

Go(Golang)程式語言 設定GCC

下載MSYS2:  https://www.msys2.org/ 安裝 程式開始執行後輸入: pacman -Syu y y 在安裝目錄底下找到msys2.exe,雙擊執行 輸入指令: pacman -Su pacman -S --needed base-devel mingw-...