Je vais expliquer pourquoi une relation comme dans la question
(pour chaque n ) aide à l'affacturage. Je ne peux pas tout à fait terminer l'argument, mais peut-être que quelqu'un le peut.
(2n)!=∑k=0m−1akbckk
n
La première observation est qu'une relation comme ci-dessus (et plus généralement, l'existence de circuits arithmétiques poly-taille pour ) Donne un circuit poly-taille pour le calcul ( 2 n ) ! mod x pour x donné en binaire: évaluez simplement la somme modulo x , en utilisant l'exponentiation par quadrature répétée.(2n)!(2n)!modxxx
Maintenant, si nous pouvions calculer pour y arbitraire , nous pourrions factoriser x : en utilisant la recherche binaire, trouver le plus petit y tel que gcd ( x , y ! ) ≠ 1 (que nous pouvons calculer en utilisant gcd ( x , ( y ! mod x ) ) ). Alors y doit être le plus petit diviseur premier de x .y!modxyxygcd(x,y!)≠1gcd(x,(y!modx))yx
Si nous ne pouvons faire que des puissances de pour y , nous pouvons toujours essayer de calculer gcd ( x , ( 2 n ) ! ) Pour chaque n ≤ log x . L'un d'entre eux sera un diviseur non trivial de x , sauf dans le cas malheureux où il y a un n tel que x est coprime à ( 2 n ) ! , et divise ( 2 n + 1 ) ! . Cela revient à dire que x2ygcd(x,(2n)!)n≤logxxnx(2n)!(2n+1)!xest sans carré, et tous ses facteurs premiers ont la même longueur de bits. Je ne sais pas quoi faire dans ce cas (plutôt important, cf. Blum integers).