the_perl_foundation_icon

Script 1: is_prime.pl

Vous trouverez ci-dessous un petit script perl qui permet de déterminer si un nombre est premier ou non: is_prime.pl

prabou@prabou-VPCZ23C5E:~/Téléchargements$ cat is_prime.pl
#!/usr/bin/perl
#File: is_prime.pl
#Author: Prabou MOUTTOU
#Description: checks if nombre is prime
#Version: 28 April 2019

use strict;
use warnings;

my $nombre=$ARGV[0];

#si le nombre est pair il n'est pas premier
if ( $nombre%2 == 0 ){
print "le nombre $nombre est pair, il n'est donc pas premier\n";
exit;
}
else
{

#calcul de la partie entiere de la racine carree du nombre
my $partie_entiere=int(sqrt($nombre));
if ($partie_entiere%2 == 0){$partie_entiere = $partie_entiere - 1;}

#calcul du reste de l'operation nombre/3,5,7...$partie_entiere
my $i=3;
while (($nombre%$i) != 0 && $i <= $partie_entiere) {
  $i = $i + 2;
}

if ( $i-2 != $partie_entiere ){print "$nombre n'est pas premier! $nombre est divisible par $i\n";}
else {print "$nombre est premier!\n";}

}

#quelques executions
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.pl 1776
le nombre 1776 est pair, il n'est donc pas premier
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.pl 8191
8191 est premier!
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.pl 2147483647
2147483647 est premier!
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.pl 4294967295
4294967295 n'est pas premier! 4294967295 est divisible par 3
prabou@prabou-VPCZ23C5E:~/Téléchargements$

Script 2: mersenne_is_prime.pl

Vous trouverez ci-dessous un petit script perl qui permet de calculer un nombre de Mersenne, puis de déterminer s'il est premier ou non: mersenne_is_prime.pl

Ce script fait appel à mersenne.pl et is_prime.pl. L'image ci-dessous montre quelques exécutions de ce script sur Kubuntu 19.04:

prabou@prabou-VPCZ23C5E:~/Téléchargements$ cat mersenne_is_prime.pl
#!/usr/bin/perl
#File: mersenne_is_prime.pl
#Author: Prabou MOUTTOU
#Description: tester si un nombre de Mersenne est premier
#Version: 01 October 2014

use strict;
use warnings;

my $nombre=$ARGV[0];

#appel du script mersenne.pl pour calculer le nombre de Mersenne
my $mersennenbre=`/usr/bin/perl ./mersenne.pl $nombre`;

#appel du script is_prime.pl pour determiner s'il est premier
print "le nombre de Mersenne M$nombre=";
system("/usr/bin/perl ./is_prime.pl $mersennenbre");

#quelques executions
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./mersenne_is_prime.pl 29
le nombre de Mersenne M29=536870911 n'est pas premier! 536870911 est divisible par 233
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./mersenne_is_prime.pl 30
le nombre de Mersenne M30=1073741823 n'est pas premier! 1073741823 est divisible par 3
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./mersenne_is_prime.pl 31
le nombre de Mersenne M31=2147483647 est premier!
prabou@prabou-VPCZ23C5E:~/Téléchargements$

Script 3: pret.pl

Vous comptez souscrire à un crédit immobilier ou faire racheter votre crédit actuel? Alors voici le script pret.pl qui permet de générer le fichier amortissement.csv.
Le dernière ligne du script permet aussi d'envoyer automatiquement un email avec le fichier attaché.
Le fichier amortissement.csv peut être ouvert avec LibreOffice Calc ou tout autre logiciel tableur, et comme vous l'imaginez il contiendra un tableau d'amortissement pour un prêt (prêt immobilier par exemple).

Pour exécuter le script, il faut lui donner les droits d'exécution, puis entrer la commande suivante ./pret.pl capital taux durée(années) assurance. Voici un exemple:

execution pret.pl Screenshot

Remarque: Si vous souhaitez avoir plus d'explications sur le prêt en lui-même, et les formules utilisées dans le script, vous pouvez visiter la page immobilier.php.

Script 4: impots.pl

Vous trouverez ci-dessous un petit script perl qui permet de calculer ses impôts, ainsi que la part des impôts par rapport aux revenus: impots.pl
Ce script tient notamment compte des dons que vous avez faits à des organismes d'intérêt général, mais pas de la prime pour l'emploi!

L'image ci-dessous montre quelques exécutions de ce script sur Kubuntu 19.04:

prabou@prabou-VPCZ23C5E:~/Téléchargements$ cat impots.pl
#!/usr/bin/perl
#File: impots.pl
#Author: Prabou MOUTTOU
#Description: calcul des impots
#Version: 18 septembre 2014

use strict;
use warnings;
use open ':std', ':encoding(UTF-8)';

#definition des tranches et des taux pour l'annee 2014
my ($tranche1,$taux1) = (6011,0);               #premiere tranche revenus dans 0 - 6011 euros
my ($tranche2,$taux2) = (11991,0.055);          #deuxieme tranche revenus dans 6011 - 11991 euros ----> avec taux2=0 en 2015 
my ($tranche3,$taux3) = (26631,0.14);           #troisieme tranche revenus dans 11991 - 26631 euros
my ($tranche4,$taux4) = (71397,0.30);           #quatrieme tranche revenus dans 26631 - 71397 euros
my ($tranche5,$taux5) = (151200,0.41);          #cinquieme tranche revenus dans 71397 - 151200 euros
my $taux6=0.45;                                 #sixieme tranche revenus superieurs a 151200 euros

#le revenu doit etre le premier argument 
my $revenus=$ARGV[0];
print "vos revenus l'an dernier etaient de $revenus \x{20AC}\n";

#nombre de parts fiscales du foyer (deuxieme argument)
my $part=$ARGV[1];
print "nombre de parts fiscales du foyer: $part\n";

#montant des dons a des organismes d'interet general (troisieme argument)
my $dons=$ARGV[2];
print "vos dons l'an dernier etaient de: $dons \x{20AC}\n";

#calcul du revenu net global imposable
my $revenu_net_imposable=0.9*$revenus;          #-10% pour les charges deductibles
print "votre revenu net global imposable est de: $revenu_net_imposable \x{20AC}\n";

#calcul de la base imposable (ou encore assiette fiscale)
my $assiette_fiscale=$revenu_net_imposable/$part;
print "votre assiette fiscale est de: $assiette_fiscale \x{20AC}\n";

#calcul de l'impot sur les revenus
my $impots;

if ($assiette_fiscale <= $tranche1) {
        $impots=$part*$taux1*$assiette_fiscale;
}
elsif ($assiette_fiscale <= $tranche2) {
        $impots=$part*$taux2*($assiette_fiscale-$tranche1);
}
elsif ($assiette_fiscale <= $tranche3) {
        $impots=$part*($taux3*($assiette_fiscale-$tranche2)+$taux2*($tranche2-$tranche1));
}
elsif ($assiette_fiscale <= $tranche4) {
        $impots=$part*($taux4*($assiette_fiscale-$tranche3)+$taux3*($tranche3-$tranche2)+$taux2*($tranche2-$tranche1));
}
elsif ($assiette_fiscale <= $tranche5) {
        $impots=$part*($taux5*($assiette_fiscale-$tranche4)+$taux4*($tranche4-$tranche3)+$taux3*($tranche3-$tranche2)+$taux2*($tranche2-$tranche1));
}
else {
        $impots=$part*($taux6*($assiette_fiscale-$tranche5)+$taux5*($tranche5-$tranche4)+$taux4*($tranche4-$tranche3)+$taux3*($tranche3-$tranche2)+$taux2*($tranche2-$tranche1));
}

#deduction d'impot liee aux dons
my $deduction_dons;
if (0.66*$dons <= 0.2*$revenu_net_imposable) {
        $deduction_dons=0.66*$dons;
}
else {
        $deduction_dons=0.2*$revenu_net_imposable;
}

#deduction d'impot liee a la PPE (Prime Pour l'Emploi)
my $deduction_PPE=0;
#pour y avoir droit, il faut que le montant du revenu fiscal de reference du foyer soit
# < 16251 euros (pour un celibataire)
# < 32498 euros (pour un couple sans enfant)
# < (32498 + 2*n*4490) euros (pour un couple + n parts supplementaires), soit 41478 euros pour un couple avec 2 enfants
print "attention, le montant des impots ci-dessous ne tient pas compte d'une eventuelle prime pour l'emploi\n";

#calcul de l'impot final (impots - deductions)
my $impot_final=$impots-$deduction_dons-$deduction_PPE;

#calcul du taux d'imposition global sur les revenus
my $taux_imposition=100*$impot_final/$revenus;
my $taux_imposition_arrondie=sprintf ("%0.2f", $taux_imposition);
print "vos impots seront de $impot_final \x{20AC},soit $taux_imposition_arrondie % de vos revenus\n";

#execution du script
prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./impots.pl 45138 3 360
vos revenus l'an dernier etaient de 45138 €
nombre de parts fiscales du foyer: 3
vos dons l'an dernier etaient de: 360 €
votre revenu net global imposable est de: 40624.2 €
votre assiette fiscale est de: 13541.4 €
attention, le montant des impots ci-dessous ne tient pas compte d'une eventuelle prime pour l'emploi
vos impots seront de 1400.268 €,soit 3.10 % de vos revenus
prabou@prabou-VPCZ23C5E:~/Téléchargements$