Sous ce nom mystérieux
mon petit (menteur!)probleme arithmétique rien qu'a moi mais il;parait qu'il y a de amateurs:pas de noms!
Je decide arbitrairement que je vais travailler sur les entiers de 1 à 1000 continus
1,2,3,4,5,6,7,8,9,10,11....
Je commence par élever chaque élément au cube(ou au carré ou a n'importe quelle puissance
1,8,27....
le but est simple: trouver tous les couples qui additionnés donnent le même résultat
exemple 23 , 217 et 133 , 173 donnent 95236
Je me suis fais un bout de code
C'est vraiment simple
Valax = 1000;
for i:=1 to Valmax do
begin
v:=(I*I*i)
for j=i to Valmax do
begin
w=v+(J*j*j)
for z=1 to Valmax do
begin
y=(z*z*z)
for m =1 to Valmax do
if y+(m*m*m) = w then inc(trouve)
end;
end;
end;
En Pascal mais qui dit mieux! :D
les résultats sont les suivants
Valmax a maxi trouve
// 500 256 506
// 600 360 746
// 700 409 949
// 800 469 1137
// 900 658 1375
//1000 658 1601
//1100 856 1854
on se rend ainsi compte que quand Valmax =500 alors les boucles I et Z peuvent s'arrêter à 256 pour 800 a 469. On voit la question qui arrive....
Connaissant Valmax (800),connaissant la puissance de a (3) comment retrouver 469?
A gagner un Orangina et un Mars a consommer intra-muros a Saint Malo.
Papy
EDIT Ajout de commentaire sur le code
Valax = 1000; // on s'arrete a 1000
for i:=1 to Valmax do
begin
v:=(I*I*i) // calcul du cube de a
for j=i to Valmax do // on repart de I pour eviter les doublons
begin
w=v+(J*j*j) // calcul de la somme de a cube et b cube
//on cherche d'autres paires (z,m) dont la somme des cubes est W
for z=1 to Valmax do
begin
y=(z*z*z)
for m =1 to Valmax do
if y+(m*m*m) = w then inc(trouve)
end;
end;
end;
//on peut accélérer le traitement en modifiant les bornes de départ de z et
m
Pour evietr les élévations au cube on peut precalculer une table
for i:= to 1000 do
Cube[ i]:= i*i*i
Mais on perd en efficacité:cela va moins vite(pour les fanas uniquement
cela ne fait pas partie de la question; Pourquoi cela va moins vite?)
Edition
Je ne suis donc pas tres clair bien que je sics précisément se que je cherche
Je travaille sur des égalités de somme
a+b = c+d
z+y = w+x
J'élève a et b au carre, au cube...
Par exemple
a² + b²
et je cherche des sommes de carres équivalents
Exemple puissance 1
150+20 = 170
je recherche donc tous les couples dont le total est 170
151+19
152+18
153+17...
Il faut bien sur donner une limte haute
Par exemple on decide de se limiter a 500
0 < a,b,c,d < 500
quand on regarde la liste obtenue
Jamais a ne depasse 256
Pourquoi les paires 256+x ont un total unique
pourquoi 254+X a des egalités et pas 256+x?
Au lieu de inc(trouve) mettez printf(i)