paire_carre1():={
local a,b,q,p,L;
L:=NULL;
pour p de 0 jusque 100 faire
pour q de p jusque 100 faire
a:=sqrt(q+p);
b:=sqrt(q-p);
si (a==floor(a) et b==floor(b)) alors
L:=L,[p,q];
fsi
fpour
fpour
return L
}:;
On tape :
L1:=paire_carre()
On obtient :
[0,0],[0,1],[0,4],[0,9],[0,16],[0,25],[0,36],[0,49],
[0,64],[0,81],[0,100],[2,2],[4,5],[6,10],[8,8],[8,17],
[10,26],[12,13],[12,37],[14,50],[16,20],[16,65],
[18,18],[18,82],[20,29],[24,25],[24,40],[28,53],
[30,34],[32,32],[32,68],[36,45],[36,85],[40,41],[42,58],
[48,52],[48,73],[50,50],[54,90],[56,65],[60,61],[64,80],
[70,74],[72,72],[72,97],[80,89],[84,85],[96,100],[98,98]
On tape : dim(L1)
On obtient; 49
- Si (p, q) est une paire carrée, on a :
q + p = a2 et q - p = b2
donc
p = (a2 - b2)/2, donc a2 - b2 est pair c'est à dire
a2 - b2 = 0 mod 4, soit
a2 - b2 = 2 mod 4.
- Soit
n
;
si n est pair alors
n2 = 0 mod 4, en effet, si n = 2k on a
n2 = 4k2 et
si n est impair alors
n2 = 1 mod 4 en effet si n = 2k + 1 on a
n2 = 4k2 + 4k + 1.
- Donc on a soit
a2 - b2 = 0 mod 4, soit
a2 - b2 = 1 mod 4 soit
a2 - b2 = 3 mod 4.
et puisque a2 - b2 = 0 est pair, on en déduit qu
a2 - b2 = 0 mod 4
on en déduit que p est pair.
On tape :
paire_carre2():={
local a,b,q,p,L;
L:=NULL;
pour p de 0 jusque 100 pas 2 faire
pour q de p jusque 100 faire
a:=sqrt(q+p);
b:=sqrt(q-p);
si (a==floor(a) et b==floor(b)) alors
L:=L,[p,q];
fsi
fpour
fpour
return L
}:;
On tape :
L2:=paire_carre()
On obtient comme précédement:
[0,0],[0,1],[0,4],[0,9],[0,16],[0,25],[0,36],[0,49],
[0,64],[0,81],[0,100],[2,2],[4,5],[6,10],[8,8],[8,17],
[10,26],[12,13],[12,37],[14,50],[16,20],[16,65],
[18,18],[18,82],[20,29],[24,25],[24,40],[28,53],
[30,34],[32,32],[32,68],[36,45],[36,85],[40,41],[42,58],
[48,52],[48,73],[50,50],[54,90],[56,65],[60,61],[64,80],
[70,74],[72,72],[72,97],[80,89],[84,85],[96,100],[98,98]
On tape : dim(L2)
On obtient; 49
- On a si (p, q) est une paire carrée :
2p = a2 - b2 dond a2 - b2 est un multiple de 2 donc
a2 et b2 ont même parité donc
a et b ont même parité et donc a - b est un multiple de 2 c'est à
dire est pair.
On pose :
a = b + 2n
donc
a2 = b2 +4nb + 4n2 et on a :
p = (a2 - b2)/2 = 2nb + 2n2 et
q = (a2 + b2)/2 = b2 +2nb + 2n2 = b2 + p.
On veut obtenir toutes les paires carrées (p, q) vérifiant
0
p
q
1000, donc on doit avoir :
0
b2
1000 i.e
0
b
31 et
0
2nb + 2n2
1000 et
0
2nb + 2n2
1000 - b2.
On tape :
supposons(b>=0 and b<=31);
simplify(solve(b^
2+2*n*b+n^
2<1000,n))
On obtient; [((n>(-10*sqrt(10)-b)) && ((10*sqrt(10)-b)>n))]
On tape :
paire_carre3():={
local b,q,p,L,n,nmax;
L:=NULL;
pour b de 0 jusque 10*sqrt(10) faire
nmax:=(sqrt(-b^2+2000))/2+b/-2;
pour n de 0 jusque nmax faire
p:=2*n*b+2*n^2;
q:=b^2+p;
L:=L,[p,q];
fpour
fpour
return L
}
On tape :
L3:=paire_carre():;
Le calcul est tres rapide !!!!!
On tape : dim(L3)
On obtient : 421
- On tape : nuage_points(L3)
On obtient :
- On a q = p + b2 donc les points sont sur les droites d'équations y = x + b2 pour
b fixé.
0n a
p = 2nb + 2n2 donc
b = (p/(2n) - n) donc
q = p2/(4n2) + n2
donc les points sont sur les courbes
d'équations
y = x2/(4n2) + n2 pour n fixé.
On tape et on obtient :