|
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;
}
}
|
|