This commit is contained in:
Tanguy MAZE
2019-06-22 18:23:35 +02:00
commit f9e508d5ef
173 changed files with 6727 additions and 0 deletions

BIN
tests/fprime/a.out Executable file

Binary file not shown.

16
tests/fprime/examples.txt Normal file
View File

@@ -0,0 +1,16 @@
$> ./fprime 225225 | cat -e
3*3*5*5*7*11*13$
$> ./fprime 8333325 | cat -e
3*3*5*5*7*11*13*37$
$> ./fprime 9539 | cat -e
9539$
$> ./fprime 804577 | cat -e
804577$
$> ./fprime 42 | cat -e
2*3*7$
$> ./fprime 1 | cat -e
1$
$> ./fprime | cat -e
$
$> ./fprime 42 21 | cat -e
$

56
tests/fprime/fprime.c Normal file
View File

@@ -0,0 +1,56 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* fprime.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2018/04/16 15:59:51 by tmaze #+# #+# */
/* Updated: 2018/04/16 17:45:07 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <stdlib.h>
int is_prime(int nb)
{
int i;
i = 4;
if (nb == 2 || nb == 3)
return (1);
if (nb % 2 == 0 || nb % 3 == 0)
return (0);
while (i < nb / i && nb % i != 0)
i++;
return (nb % i != 0);
}
int main (int ac, char **av)
{
int nb;
int i;
if (ac == 2)
{
nb = atoi(av[1]);
if (nb == 1)
printf("1");
while (nb != 1 && (i = 2))
{
while (nb % i != 0)
{
i++;
while (!is_prime(i))
i++;
}
printf("%d", i);
nb /= i;
if (nb != 1)
printf("*");
}
}
printf("\n");
return (0);
}

View File

@@ -0,0 +1,35 @@
Assignment name : fprime
Expected files : fprime.c
Allowed functions: printf, atoi
--------------------------------------------------------------------------------
Écrire un programme qui prend en paramètre un entier strictement positif, et
qui affiche sa décomposition en facteurs premiers sur la sortie standard,
suivie d'un '\n'.
Les facteurs doivent être affichés dans l'ordre croissant et séparés par des
'*', de telle sorte que l'expression affichée donne le bon résultat.
Si le nombre de paramètres est différent de 1, le programme doit afficher '\n'.
L'entrée, quand elle est passée, sera toujours un nombre valide sans caractères
parasites.
Exemple:
$> ./fprime 225225 | cat -e
3*3*5*5*7*11*13$
$> ./fprime 8333325 | cat -e
3*3*5*5*7*11*13*37$
$> ./fprime 9539 | cat -e
9539$
$> ./fprime 804577 | cat -e
804577$
$> ./fprime 42 | cat -e
2*3*7$
$> ./fprime 1 | cat -e
1$
$> ./fprime | cat -e
$
$> ./fprime 42 21 | cat -e
$