Dans l'extrait ci-dessous, veuillez expliquer en commençant par la première boucle «pour» ce qui se passe et pourquoi. Pourquoi 0 est ajouté, pourquoi est-1 ajouté dans la deuxième boucle. Que se passe-t-il dans la déclaration "if" sous bigi. Enfin, expliquez la méthode modPow. Merci d'avance pour des réponses significatives.Diffie-Hellman - primitive racine mod - question de cryptographie
public static boolean isPrimitive(BigInteger m, BigInteger n) {
BigInteger bigi, vectorint;
Vector<BigInteger> v = new Vector<BigInteger>(m.intValue());
int i;
for (i=0;i<m.intValue();i++)
v.add(new BigInteger("0"));
for (i=1;i<m.intValue();i++)
{
bigi = new BigInteger("" + i);
if (m.gcd(bigi).intValue() == 1)
v.setElementAt(new BigInteger("1"), n.modPow(bigi,m).intValue());
}
for (i=0;i<m.intValue();i++)
{
bigi = new BigInteger("" + i);
if (m.gcd(bigi).intValue() == 1)
{
vectorint = v.elementAt(bigi.intValue());
if (vectorint.intValue() == 0)
i = m.intValue() + 1;
}
}
if (i == m.intValue() + 2)
return false;
else
return true;
}
c'est clairement devoirs. Ma question est la suivante: pourquoi les gens n'ont-ils même pas tendance à changer le texte de leur question pour sembler quelque peu différent d'une question typique de devoirs? "Enfin expliquer la méthode modPow." .. Cela me fait lol. – Jack