// C++ program to implement vieta formula
// to calculate polynomial coefficients.
#include <bits/stdc++.h>
using namespace std;
// Function to calculate polynomial
// coefficients.
void vietaFormula(int roots[], int n)
{
// Declare an array for
// polynomial coefficient.
int coeff[n + 1];
// Set all coefficients as zero initially
memset(coeff, 0, sizeof(coeff));
// Set highest order coefficient as 1
coeff[0] = 1;
for (int i = 0; i < n; i++) {
cout<<i<<":"<<endl;
for (int j = i+1; j >0; j--) {
coeff[j] += roots[i] * coeff[j - 1];
cout<<j<<" "<<coeff[j]<<" "<<roots[i]<<" "<<coeff[j-1]<<endl;
}
}
cout << "Polynomial Coefficients: ";
for (int i = n; i >= 0; i--) {
cout << coeff[i] << " ";
}
}
// Driver code
int main()
{
// Degree of required polynomial
int n = 4;
// Initialise an array by
// root of polynomial
int roots[] = {-1, 2, -3, 7};
// Function call
vietaFormula(roots, n);
return 0;
}
Ly8gQysrIHByb2dyYW0gdG8gaW1wbGVtZW50IHZpZXRhIGZvcm11bGEgIAovLyB0byBjYWxjdWxhdGUgcG9seW5vbWlhbCBjb2VmZmljaWVudHMuIAojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4gCnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAogIAovLyBGdW5jdGlvbiB0byBjYWxjdWxhdGUgcG9seW5vbWlhbCAgCi8vIGNvZWZmaWNpZW50cy4gCnZvaWQgdmlldGFGb3JtdWxhKGludCByb290c1tdLCBpbnQgbikgCnsgCiAgICAvLyBEZWNsYXJlIGFuIGFycmF5IGZvciAKICAgIC8vIHBvbHlub21pYWwgY29lZmZpY2llbnQuIAogICAgaW50IGNvZWZmW24gKyAxXTsgCiAgCiAgICAvLyBTZXQgYWxsIGNvZWZmaWNpZW50cyBhcyB6ZXJvIGluaXRpYWxseSAKICAgIG1lbXNldChjb2VmZiwgMCwgc2l6ZW9mKGNvZWZmKSk7IAogICAgICAKICAgIC8vIFNldCBoaWdoZXN0IG9yZGVyIGNvZWZmaWNpZW50IGFzIDEgCiAgICBjb2VmZlswXSA9IDE7IAogIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsgCiAgICAJY291dDw8aTw8IjoiPDxlbmRsOwogICAgICAgIGZvciAoaW50IGogPSBpKzE7IGogPjA7IGotLSkgewogICAgICAgIAkKICAgICAgICAgICAgY29lZmZbal0gKz0gICByb290c1tpXSAqIGNvZWZmW2ogLSAxXTsgCiAgICAgICAgICAgIGNvdXQ8PGo8PCIgIjw8Y29lZmZbal08PCIgIjw8cm9vdHNbaV08PCIgIjw8Y29lZmZbai0xXTw8ZW5kbDsKICAgICAgICB9IAogICAgfSAKICAKICAgIGNvdXQgPDwgIlBvbHlub21pYWwgQ29lZmZpY2llbnRzOiAiOyAKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDA7IGktLSkgeyAKICAgICAgICBjb3V0IDw8IGNvZWZmW2ldIDw8ICIgIjsgCiAgICB9IAp9IAogIAovLyBEcml2ZXIgY29kZSAKaW50IG1haW4oKSAKeyAKICAgIC8vIERlZ3JlZSBvZiByZXF1aXJlZCBwb2x5bm9taWFsIAogICAgaW50IG4gPSA0OyAKICAgICAgCiAgICAvLyBJbml0aWFsaXNlIGFuIGFycmF5IGJ5IAogICAgLy8gcm9vdCBvZiBwb2x5bm9taWFsIAogICAgaW50IHJvb3RzW10gPSB7LTEsIDIsIC0zLCA3fTsKICAgICAgCiAgICAvLyBGdW5jdGlvbiBjYWxsIAogICAgdmlldGFGb3JtdWxhKHJvb3RzLCBuKTsgCiAgICAgIAogICAgcmV0dXJuIDA7IAp9IA==