add gcd if all int

This commit is contained in:
hugogogo
2026-05-14 12:31:32 +02:00
parent d770d7fc87
commit bbe0d65b1f
7 changed files with 120 additions and 95 deletions

View File

@@ -11,31 +11,49 @@ static void print_solution_degree_1(s_solution_degree_1 solution)
static void print_solution_delta_zero(s_solution_degree_2 solution)
{
ft_printf("Discriminant is equal to zero, the solution is:\n");
printf("%g\n", solution.first_term);
printf("%g\n", solution.left_term);
}
static void print_solution_delta_positiv(s_solution_degree_2 solution)
{
ft_printf("Discriminant is strictly positive, the two solutions are:\n");
printf("%g\n", solution.first_term + solution.second_term);
printf("%g\n", solution.first_term - solution.second_term);
printf("%g\n", solution.left_term + solution.right_term);
printf("%g\n", solution.left_term - solution.right_term);
}
static void print_solution_delta_negativ(s_solution_degree_2 solution)
{
ft_printf("Discriminant is strictly negative, the two complex solutions are:\n");
// solution 1
if (solution.b)
printf("%g/%g + ", solution.b * -1, solution.a * 2);
printf("%gi/%g\n", solution.delta_sqrt, solution.a * 2);
if (solution.all_int)
{
// solution 1
if (solution.b != 0.0)
printf("%g/%g + ", solution.b * -1, solution.a * 2);
printf("%gi/%g\n", solution.delta_sqrt, solution.a * 2);
// solution 2
if (solution.b)
printf("%g/%g - ", solution.b * -1, solution.a * 2);
// solution 2
if (solution.b != 0.0)
printf("%g/%g - ", solution.b * -1, solution.a * 2);
else
printf("-");
printf("%gi/%g\n", solution.delta_sqrt, solution.a * 2);
}
else
printf("-");
printf("%gi/%g\n", solution.delta_sqrt, solution.a * 2);
{
// solution 1
if (solution.left_term != 0.0)
printf("%g + ", solution.left_term);
if (solution.right_term != 0.0)
printf("i * %g\n", solution.right_term);
// solution 2
if (solution.left_term != 0.0)
printf("%g - ", solution.left_term);
else
printf("-");
printf("i * %g\n", solution.right_term);
}
}
void print_solution(s_solution *solution)
@@ -53,11 +71,11 @@ void print_solution(s_solution *solution)
{
solution_d2 = solution->solution_degree_2;
delta_sign = solution_d2.delta_sign;
if (delta_sign == 0)
if (delta_sign == DELTA_ZERO)
print_solution_delta_zero(solution_d2);
else if (delta_sign > 0)
else if (delta_sign == DELTA_PLUS)
print_solution_delta_positiv(solution_d2);
else if (delta_sign < 0)
else if (delta_sign == DELTA_MINUS)
print_solution_delta_negativ(solution_d2);
else
stop_errors("delta sign is wrong : '%i' , delta : '%g'", solution_d2.delta_sign, solution_d2.delta);