课后习题
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;
}