Il s'agit d'un problème de la session de pratique du Polish Collegiate Programming Contest 2012 . Bien que je puisse trouver les solutions pour le concours principal, je n'arrive pas à trouver la solution à ce problème n'importe où.
Le problème est le suivant: étant donné un ensemble de entiers positifs distincts ne dépassant pas 10 9 , trouvez la taille m du plus petit sous-ensemble qui n'a pas de diviseur commun autre que 1. N est au plus 500, et une solution peut être supposée exister.
J'ai réussi à montrer que . Mon raisonnement est le suivant: supposons qu'il existe un sous-ensemble minimal de taille S | S | = 10 , avec gcd = 1. Alors tous les 9 sous-ensembles de S doivent avoir gcd> 1. Il y a exactement 10 de ces sous-ensembles, et leurs gcd doivent être coprime par paire. Que ces pgcd soient 1 < g 1 < g 2 < . . . < g 10 , où gcd ( g i , g j ) = 1 , pour i ≠ . Alors le nombre maximum dans S est g 2 g 3 . . . g 10 . Mais g 2 g 3 . . . g 10 ≥ 3 × 5 × 7 × 11 × . . . × 29 = 3234846615 > 10 9 , une contradiction.
Cependant, même avec cela, une force brute simple est encore trop lente. Quelqu'un a-t-il d'autres idées?