| 
 | 
 
3Java金币 
package Hello; 
 
import java.util.Scanner; 
 
public class hello { 
 
                public  int sushu(int a)        // 判断数据a是否为素数 
                { 
                    int i,j=0; 
                    int b; 
                    b=a; 
                    for(i=2;(i<b/2);i++) 
                    { 
                            j=a%i; 
                            if(j==0) 
                                    break; 
                     
                    } 
                    if(j==0) 
                            return i; 
                    else 
                            return 0; 
                          //a不是素数,返回其因数   //a是素数 
                } 
                 
                public   int hufan(int a,int b)     //由二次互反律计算legend值 
                { 
                    int n,m,k,l,o,p; 
                    hello h2=new hello(); 
                    
                    switch(a) 
                    { 
                        case 1:return 1; 
                        case -1:return ((b%4-1)==0)?1:-1; 
                        case 2: 
                        { 
                           if((((b*b-1)/8)%2)!=0) 
                           return -1; 
                           else return 1; 
                        } 
                        default: 
                        { 
                                        n=h2.sushu(a); 
                                              
                                 if(n==0) 
                            { 
                                if((((a-1)*(b-1)/4)%2)!=0) 
                                l=-1; 
                                else l=1; 
                                 
                                System.out.println("l="+l); 
                                         System.out.println("\n"); 
                                 
                                k=l*hufan(b%a,a); 
                                 
                                System.out.println("k="+k); 
                                         System.out.println("\n"); 
                                 
                                return k; 
                            } 
                                 else 
                            { 
                                m=a/n; 
                                o=hufan(n,b); 
                                p=hufan(m,b); 
                                return o*p; 
                            } 
                        } 
                    } 
                } 
           
                public static void   main(String[] args) 
                { 
                   int a,b,l,m=0; 
                   int c=1; 
                   Scanner  reader=new Scanner(System.in); 
                  // boolean true==1; 
                   hello h1=new hello(); 
                    
                   while(c==1) 
                   { 
                           m++; 
                      System.out.println("请输入第"+m+"组测试用例"); 
                     // System.out.println("\n"); 
                   
                      a=reader.nextInt(); 
                      if(a==0) 
                      { 
                              System.out.println("输入数据出现错误请重新输入!"); 
                              continue; 
                      } 
                      b=reader.nextInt(); 
                      if(b==0) 
                      { 
                              System.out.println("输入数据出现错误请重新输入!"); 
                              continue; 
                      } 
                      l=h1.hufan(a, b); 
 
                      System.out.println("l="+l); 
                     
 
                    //  System.out.println("\n"); 
                     
                   } 
                //return 0; 
                } 
 
 
} 
 
 
 |   
 
 
 
 
 
 |