Recherche des nombres premiers palindromes
Page 1 sur 1
07092008
Recherche des nombres premiers palindromes
Salut,
C'est une idée qui m'est venue à la tête ... je l'ai pas piquée d'un bouquin ni d'internet.
On va essayer de l'étudier de plus près ...
de plus,
On veut écrire un programme qui cherche les nombres Premiers et Palindromes s'ils existent bien sûr.
L'existence de tels nombres (à part le 11) n'est pas sure puisqu'on ne l'a pas démontrée mathématiquement (je vais essayer de le faire...) Si vous arrivez à démontrer que de tels nombres n'existent pas, alors, bravo!
Le meilleur programme serait :
- le plus rapide
- le plus optimal en mémoire
- le plus lisible et clair
Développer dans n'importe quel langage de programmation, et faites des captures d'écran, les coller dans ce topic... ne pas oublier de mentionner le temps d'exécution!
A VOUS DE JOUER...
C'est une idée qui m'est venue à la tête ... je l'ai pas piquée d'un bouquin ni d'internet.
On va essayer de l'étudier de plus près ...
Un nombre T de longueur n est dit Palindrome s'il est symétrique :
T[1] = T[n],
T[2] = T[n-1],
...
de plus,
Un nombre premier est un entier naturel, admettant exactement deux diviseurs distincts dans (i.e : entiers et positifs) : 1 et lui-même.
On veut écrire un programme qui cherche les nombres Premiers et Palindromes s'ils existent bien sûr.
L'existence de tels nombres (à part le 11) n'est pas sure puisqu'on ne l'a pas démontrée mathématiquement (je vais essayer de le faire...) Si vous arrivez à démontrer que de tels nombres n'existent pas, alors, bravo!
Le meilleur programme serait :
- le plus rapide
- le plus optimal en mémoire
- le plus lisible et clair
Développer dans n'importe quel langage de programmation, et faites des captures d'écran, les coller dans ce topic... ne pas oublier de mentionner le temps d'exécution!
A VOUS DE JOUER...
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7253
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Recherche des nombres premiers palindromes :: Commentaires
Merci pour la proposition. J'ai fait un programme en Pascal. après je l'ai optimisé !!! il est bien ... je vais poser les statistiques après ...
et vous les autres?
et vous les autres?
C'est très bien expliqué Methodix !!!
Il s'agit de faire un petit programme dans un langage donné, qui cherche ces nombres particuliers, s'ils existent biensûr.
Le meilleur programme sera celui le plus rapide, et clair et moins gourmand en ressources ...
(bienque ça soit un peu difficile de satisfaire toutes ces contraintes en même temps!)
Il s'agit de faire un petit programme dans un langage donné, qui cherche ces nombres particuliers, s'ils existent biensûr.
Le meilleur programme sera celui le plus rapide, et clair et moins gourmand en ressources ...
(bienque ça soit un peu difficile de satisfaire toutes ces contraintes en même temps!)
Alors, c'est vrai que c'est pas trop compliqué comme travail demandé, mais, on peut toujours en faire un défi ... où est-ce que vous en êtes ?
Salut,
Je voulais vérifier une chose :
Si on a une liste de nombres premiers triée (dans un tableau T), et N un nombre à vérifier s’il est premier ou non,
On vérifie le reste de la division de N par chaque T[i], si c’est 0 donc c’est pas un nombre premier, sinon tant que la condition T[i]>√N, alors c’est un nombre premier.
Est-ce que ce raisonnement est correct (surtout en ce qui concerne la condition T[i]>√N) ?
Je voulais vérifier une chose :
Si on a une liste de nombres premiers triée (dans un tableau T), et N un nombre à vérifier s’il est premier ou non,
On vérifie le reste de la division de N par chaque T[i], si c’est 0 donc c’est pas un nombre premier, sinon tant que la condition T[i]>√N, alors c’est un nombre premier.
Est-ce que ce raisonnement est correct (surtout en ce qui concerne la condition T[i]>√N) ?
oui ce raisonnement est correct. Il possède déjà un nom que j'ai oublié
NB: TantQue(T[i] <= SQRT(N)) et non pas >
Prends le cas de 25 pour vérifier...
NB: TantQue(T[i] <= SQRT(N)) et non pas >
Prends le cas de 25 pour vérifier...
jetez un coup d'oeil sur ce lien:
http://fr.wikipedia.org/wiki/Nombre_premier
http://fr.wikipedia.org/wiki/Nombre_premier
Trouver les nombre premier palindromes ? c'est un bon sujet. Je vais m'y pencher.
oh manianis! bon retour monsieur ... ça fait longtemps que tu ne t'es pas connecté au forum.
J'attends ton défi Manianis !
On verra cette fois-ci si tu ton programme va battre le mien ou non
On verra cette fois-ci si tu ton programme va battre le mien ou non
Voici un snapshot d'une solution incomplete.
- Code:
program pal_prem;
const pchif : array [1..4] of integer = (1, 3, 7, 9);
function est_premier(n : longint):boolean;
var
bVal : boolean;
bsup,
nstart,
ncount : longint;
begin
if (n = 2) or
(n = 3) or
(n = 5) then bVal := True
else if (n mod 2 = 0) or
(n mod 3 = 0) or
(n mod 5 = 0) then bVal := False
else
begin
bsup := trunc(sqrt(n)) + 1;
nstart := 7;
bVal := True;
while (bVal) and (nStart <= bSup) do begin
bVal := (n mod nStart <> 0);
nStart := nStart + 2;
while (nStart mod 3 = 0) or
(nStart mod 5 = 0) do nStart := nStart + 2;
end;
end;
est_premier := bVal;
end;
procedure nombres_palindromes(n : longint ; var pl1, pl2 : longint);
var
p, lm, lm1 : longint;
r : integer;
begin
p := 1;
while (p <= n) do p := p * 10; p := p div 10;
lm := p * p; lm1 := lm * 10;
pl1 := n; pl2 := n;
while (lm > p) do begin
r := n mod 10;
n := n div 10;
pl1 := pl1 + r * lm;
pl2 := pl2 + r * lm1;
lm1 := lm;
lm := lm div 10;
end;
pl2 := pl2 + (n mod 10) * lm1;
end;
var i, j, pl1, pl2 : longint;
begin
for i:=0 to 20 do begin
for j:=1 to 4 do begin
nombres_palindromes(i*10+pchif[j], pl1, pl2);
if (est_premier(pl1)) then Writeln(pl1:10);
if (est_premier(pl2)) then Writeln(pl2:10);
end;
end;
end.
manianis: bienque la solution est prometteuse, je vais la cacher quelques part parce que ce n'est pas un exercice, mais plutôt un Challenge. Donc il est plus motivant de présenter des statistiques de l'exécution du programme que de donner des éléments de réponse.
Par exemple, si tu nous mets un petit graphe (ou un tableau) décrivant le temps d'exécution de ton programme en fonction de n (le nombre en cours), tout le monde pourra avoir une idée sur la performance de ton programme, sans connaître comment tu l'as implémenté.
Amicalement.
Par exemple, si tu nous mets un petit graphe (ou un tableau) décrivant le temps d'exécution de ton programme en fonction de n (le nombre en cours), tout le monde pourra avoir une idée sur la performance de ton programme, sans connaître comment tu l'as implémenté.
Amicalement.
nabiL a écrit:oui ce raisonnement est correct. Il possède déjà un nom que j'ai oublié
NB: TantQue(T[i] <= SQRT(N)) et non pas >
Prends le cas de 25 pour vérifier...
ça s'appelle "crible d'eratosthène" Nabil
Sami a écrit:nabiL a écrit:oui ce raisonnement est correct. Il possède déjà un nom que j'ai oublié
NB: TantQue(T[i] <= SQRT(N)) et non pas >
Prends le cas de 25 pour vérifier...
ça s'appelle "crible d'eratosthène" Nabil
Merci Sami
Sujets similaires
» [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"
» Exercice: Les 10 premiers nombres premiers
» Les nombres palindromes
» Problème: les nombres super palindromes
» Une infinité de nombres premiers?
» Exercice: Les 10 premiers nombres premiers
» Les nombres palindromes
» Problème: les nombres super palindromes
» Une infinité de nombres premiers?
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum