巡回群 G の生成元を検索するアルゴリズムを実装しようとしています:
n は群 G の次数であり、Pi は n を n = P1^e1 x P2^e2 のような素数に分解したものです ... .x Pk^ek
これはアルゴリズムです:
ステップ 1: G から要素 g を選択する
ステップ 2: 1 から k までの各 i について
ステップ 2.1 を実行: b <- pow ( g , n / Pi )
ステップ 2.3: b =1 の場合はステップ 1に進む
ステップ 3: g を返す
これは Java での私の実装です。goto を使用したいのですが、エラーが発生します。
public int getGenerateur(){
List<Integer> facteur=new ArrayList<Integer>();
facteur=this.getFacteur(nombre);
double b;
int generateur=0;
boolean etape = true;
while(etape){
etape = false;
System.out.println("generateur aleatoire:");
generateur =(int) (Math.random() * (nombre - 2)) + 2;
System.out.println(generateur);
for(int s=0;s<facteur.size();s++){
b=Math.pow(generateur,(nombre/facteur.get(s)))%(nombre+1);
System.out.println("b= "+b);
if(b==1){
etape = true;
break;
}
}
}
return generateur;
}