Un nombre est dit super premier s'il est premier et quand on supprime n'importe quel chiffre il reste premier. Exemple 113.
Voici un code source d'un programme qui permet d'afficher tous les super-premiers de 1 à n donné. J'attends vos avis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 program premier; uses crt; var n,i:longint; function prm(n:longint):boolean; var i:longint; begin if n=1 then prm:=false else begin i:=2; while (n mod i <> 0) and (i<n) do i:=i+1; if i=n then prm:=true else prm:=false; end; end; function supprm(n:longint):boolean; var ch,aux:string; m:longint; s,i:byte; e:integer; begin str(n,ch); aux:=ch; if prm(n)=false then supprm:=false else begin s:=0; for i:=1 to length(aux) do begin delete(ch,i,1); val(ch,m,e); ch:=aux; if prm(m)=true then s:=s+1; end; if s=length(aux) then supprm:=true else supprm:=false; end; end; begin readln(n); for i:=1 to n do begin if supprm(i)=true then writeln(i); end; end.
Partager