因式分解是基础的数学课题,当分解式中系数较大时,靠人工分解并非轻而易举,这就为应用程序设计实施因式分解留下空间;
本节探讨最简单的二次三项式因式分解;
已知二次三项式 a*x^2+b*x*y+c*y^2 中的系数a、b、c为整数,其中a为正整数,b、c为任意非零整数,试在整数范围内分解因式;
若在整数范围内无法进行因式分解,应予以指出;
1.说明:
在整数范围内进行因式分解与整数的因数分解密切相关;
(1)、判别并提取a、b、c的公因数:
二次三项式分解为两个一次式之积,若二次三项式系数a、b、c存在大于1的公因数,有必要在因式分解之前提取a、b、c的公因数;
设v=min(a,|b|,|c|),设置u循环(v~2),若u同时整除a、b、c,则存在大于1的公因数u,提取公因数u后在实施因式分解,同时p=u,等待分解完成后再输出公因数p;
(2)、整数a、c因数分解:
设分解因式为: a*x^2+b*x*y+c*y^2=(a1*x±c1*y)*(a2*x±c2*y)
约定分解的一次式中的整数a1,a2,c1,c2>0,其中a1,a2均为系数a的因数,且a1*a2=a;c1,c2均为系数|c|的因数,且c1*c2=|c|;
为此,在1~sqrt(a)范围内分解整数a的因数并存储与数组fa[k],显然整数a/fa[k]为a的大于等于sqrt(a)的因数,也赋值给fa[k];
同样,分解整数|c|的因数并存储于数组fc[j]中;
(3)、一次式中的符号:
因为二次三项式的系数a为正整数,b与c为任意非零整数,则一次式中的符号确定为:
当b>0,c<0时,分解式