⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testmillerrabin.java

📁 素性检测的Java程序
💻 JAVA
字号:
package numbercruncher.program;

import numbercruncher.mathutils.AlignRight;
import numbercruncher.primeutils.MillerRabinTest;
import numbercruncher.primeutils.MillerRabinCaller;
import numbercruncher.primeutils.MillerRabinStatus;

/**
 * PROGRAM: Miller-Rabin Test for Primality
 *
 * Demonstrate the Miller-Rabin test for primality.
 */
 public class TestMillerRabin implements MillerRabinCaller
 {
 	private static final int ITERATIONS = 5;
 	
 	private static final String CODE_LABELS[] = {
 		"???","composite","prime?"   
 	};
 	
 	private AlignRight ar = new AlignRight();
 	
 	/**
 	 * Test an integer p for primality.
 	 * @pram p the value of p
 	 */
 	 public void test ( int p )
 	 {
 	 	System.out.println("\nTESTING " + p + "\n");
 	 	ar.print("b",10);
 	 	ar.print("k",10);
 	 	ar.print("s",5);
 	 	ar.print("i",5);
 	 	ar.print("r",10);
 	 	ar.print("ststus",12);
 	 	ar.underline();
 	 	
 	 	MillerRabinTest mrt = new MillerRabinTest(p,ITERATIONS,this);
 	 	boolean result = mrt.test();
 	 	
 	 	System.out.println();
 	 	System.out.print(p + " is ");
 	 	System.out.println(result ? "probably prime." : "composite.");
 	 	 
 	}
 	
 	/**
 	 * Report on the test status.
 	 * @param status the test status
 	 */
 	 public void reportStatus(MillerRabinStatus status)
 	 {
 	 	ar.print(status.getB(), 10);
 	 	ar.print(status.getK(), 10);
 	 	ar.print(status.getS(), 5);
 	 	ar.print(status.getIndex(), 5);
 	 	ar.print(status.getValue(), 10);
 	 	
 	 	ar.print(CODE_LABELS[status.getCode()], 12);
 	 	ar.println();
 	 }
 	 
 	 /**
 	  * Main.
 	  * @param args the commandline arguments (ignored)
 	  */
 	  public static void main(String args[])
 	  {
 	  	TestMillerRabin millerRabin = new TestMillerRabin();
 	  	
 	  	millerRabin.test(21);
 	  	millerRabin.test(8191);
 	  	millerRabin.test(524287);
 	  	millerRabin.test(1604401);
 	  }
 }	  		 		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -