如何求这些,c语言函数的题

课后习题
1,写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果!
2,求方程ax2+bx+c=0的根,用三个函数分别当:b2-4ac大于0,等于0,和小于0时的根并输出结果。从主函数输入a,b,c,的值。
3,写一个判素数的函数,在主函数输入一个整数的输出是否为素数的信息。

#include <stdio.h>
int fun1(int a, int b);
int fun2(int a, int b);
int main() {
    int a = 0, b = 0, gcd = 0, lcm = 0;
    scanf("%d %d", &a, &b);
    gcd = fun1(a, b);
    lcm = fun2(a, b);
    printf("最大公约数:%d\n", gcd);
    printf("最小公倍数:%d\n", lcm);
    system("pause");
    return 0;

}

//最大公约数 = 小数 与 (大数%小数) 的最大公约数
//若a<b,经过一次辗转相除后,a,b的值会互换,所以不需要考虑a,b谁大

int fun1(int a, int b) {
    int gcd = 0, r = 0;
    while (b != 0) { //辗转相除法
        r = a % b;
        a = b;
        b = r;
    }
    gcd = a;
    return gcd;

}
//最小公倍数 = 两数相乘 / 最大公约数

int fun2(int a, int b) {
    int lcm = 0, gcd = 0;
    gcd = fun1(a, b);
    lcm = a * b / gcd;
    return lcm;

}