Je ne suis pas vraiment doué pour assombrir du code et encore moins en C. Par contre, niveau algo pourrave, ça je sais faire.
Une version C d'un de mes vieux codes Perl qui détermine si un nombre est premier ou non à partir du théorème :
"La division en sous-chaînes égales d'une chaîne de longueur n prouve que n est non premier".
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char** argv){
int nb=0;
printf("Entrer un nombre : \n");
scanf("%d",&nb);
if(nb<3){
printf("%d est premier.\n",nb);
}
char* s = malloc(sizeof(char)*nb+1);
int i=0;
while(i<nb){
s[i] = 'z';
++i;
}
s[i]='\0';
i=2;
while(i<nb){
regex_t preg;
int z=i;
int j=0;
while(z>0){
z=z/10;
++j;
}
char* rx = malloc(sizeof(char)*(9+j)+1);
rx[9+j]='\0';
sprintf(rx,"^(z{%d})+$",i);
if (regcomp (&preg,rx, REG_NOSUB | REG_EXTENDED) == 0) {
if (regexec (&preg, s, 0,0, 0) == 0) {
printf ("n'est pas premier.\n");
return 0;
}
regfree (&preg);
}
free(rx);
++i;
}
printf("est premier.\n");
return 0;
}
(Le pire c'est que chacun a codé tout en comprenant son code... !)
Rien n'est moins sur...
On peut - et c'est courant - obscurcir un code déjà existant. C'est plus facile à bien des égards, même si ca vaut le coup de prévoir des le début comment obscurcir.
D'ailleurs, le code 14 (le mien ) est à la base très lisible...
- Affiche un triangle de '*' suivant le nombre passé en argument du main().
- Calcule une expression NPI passée en argument du main (Ne gère que les nombres de 1 chiffre, et les opérateurs + - * /). Par exemple : 5 3 + ===> 8
- Un simple "Hello world!"
Mais pour la catégorie "offuscation", je trouve justement marrant de pas donner ce que fais le programme. Avec un programme bien offusqué, on ne devrait pas comprendre ce qu'il fait.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles - ♡ Copying is an act of love.
Objectif Zéro Bug - le test logiciel professionnel | L'électronique de zéro | Tableaux & pointeurs | Pointeurs sur fonctions | Lecture/écriture binaire
Objectif Zéro Bug - le test logiciel professionnel | L'électronique de zéro | Tableaux & pointeurs | Pointeurs sur fonctions | Lecture/écriture binaire
🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles - ♡ Copying is an act of love.
🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles - ♡ Copying is an act of love.
🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles - ♡ Copying is an act of love.
🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles - ♡ Copying is an act of love.