Polynôme d'Euler et nombre premier (Matlab)
Bonjour,
le polynôme d'Euler $X^2+X+41$ pour $X$ de 0 à 40 prend des nombres premiers:[41, 43, 47, 53, 61, 71, 83, 97, 113, 131, 151, 173, 197, 223, 251, 281, 313, 347, 383, 421, 461, 503, 547, 593, 641, 691, 743, 797, 853, 911, 971, 1033, 1097, 1163, 1231, 1301, 1373, 1447, 1523] au 41 eme valeur on a $1601=41^2$ qui n'est pas premier.
Je fais un programme Matlab.
Merci en avance.
le polynôme d'Euler $X^2+X+41$ pour $X$ de 0 à 40 prend des nombres premiers:[41, 43, 47, 53, 61, 71, 83, 97, 113, 131, 151, 173, 197, 223, 251, 281, 313, 347, 383, 421, 461, 503, 547, 593, 641, 691, 743, 797, 853, 911, 971, 1033, 1097, 1163, 1231, 1301, 1373, 1447, 1523] au 41 eme valeur on a $1601=41^2$ qui n'est pas premier.
Je fais un programme Matlab.
Variable q,cp, i: entiers Debut Ecrire ('veuiller entrer les valeurs de q") Lire(q) P<---- X*X+X+q cp<----0 Pour i allant de 0à q-2 faire si q mod i=0 alors cp<---- 1 Sinon P(i) mod q= fin si Ecrire ("P(i) est premier") Finça ne marche pas, peut-être c'est au niveau du nombre premier.
Merci en avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ce que tu as écrit n'est pas du Matlab. Montre nous du Matlab.
Cordialement,
Rescassol
Paul
je vois la source de ton programme pour transformer en Matlab (comme vous dites que Scilab et Matlab sont très proche).
Merci de m'eclaircir comment on construit avec une matrice.
Sdoula.
Tu as dit au début que tu faisais un programme Matlab.
Montre nous le et on te dira où il y a une erreur.
Cordialement,
Rescassol
Ton code n'est toujours pas du Matlab, ça ressemble plus à du Pascal.
Cordialement,
Rescassol
L'idée en Matlab/Scilab, c'est de travailler sur des matrices
Voilà quelque chose qui est correct en Matlab, et qui ressemble peut-être plus à ce que tu cherches:
Cordialement,
Rescassol
Edit: Au passage, $41^2=1681$ et non $1601$.
Les nombres premier P(n) de 1 à 100 :
Columns 1 through 13:
1 2 3 4 5 6 7 8 9 10 11 12 13
Columns 14 through 26:
14 15 16 17 18 19 20 21 22 23 24 25 26
Columns 27 through 39:
27 28 29 30 31 32 33 34 35 36 37 38 39
Columns 40 through 52:
42 43 45 46 47 48 50 51 52 53 54 55 57
Columns 53 through 65:
58 59 60 61 62 63 64 66 67 68 69 70 71
Columns 66 through 78:
72 73 74 75 77 78 79 80 83 85 86 88 90
Columns 79 through 86:
92 93 94 95 97 98 99 100
Le probleme , on a pas les nombre premiers d'Euler, peut etre au niveau du l'avant dernier ligne T=[T,X].
Je n'ai corrigé que l'aspect informatique de ce que tu avais fait.
Pour l'aspect mathématique, à toi de préciser ce que tu veux.
Ton programme initial ne demande pas d'afficher des nombres premiers, ma correction non plus.
Cordialement,
Rescassol
T=[];
disp('Les nombres premier P(n) de 1 à 100 :')
for X=1:100
if isprime(polyval(P,X))
T=[T polyval(P,X)];
end
end
disp(T)
J'ai juste changé le X par (polyval(P,X) et j'obtient les image de P premiers (les nombres premiers d'Euler) et on obtient le resultat voulu:
Les nombres premier P(n) de 1 à 100 :
Columns 1 through 10:
43 47 53 61 71 83 97 113 131 151
Columns 11 through 20:
173 197 223 251 281 313 347 383 421 461
Columns 21 through 30:
503 547 593 641 691 743 797 853 911 971
Columns 31 through 40:
1033 1097 1163 1231 1301 1373 1447 1523 1601 1847
Columns 41 through 50:
1933 2111 2203 2297 2393 2591 2693 2797 2903 3011
Columns 51 through 60:
3121 3347 3463 3581 3701 3823 3947 4073 4201 4463
Columns 61 through 70:
4597 4733 4871 5011 5153 5297 5443 5591 5741 6047
Columns 71 through 80:
6203 6361 6521 7013 7351 7523 7873 8231 8597 8783
Columns 81 through 86:
8971 9161 9547 9743 9941 10141
Merci encore.
Sdoula
En Scilab (je ferais la même chose en python par exemple avec Numpy), le code suivant fait le boulot (à l'affichage près):
Paul