# Check if two vectors are collinear or not

Given six integers representing the **x**, **y**, and **z** coordinates of two vectors, the task is to check if the two given vectors are collinear or not.

**Examples:**

Input:x1 = 4, y1 = 8, z1 = 12, x2 = 8, y2 = 16, z2 = 24Output:YesExplanation:The given vectors: 4i + 8j + 12k and 8i + 16j + 24k are collinear.

Input:x1 = 2, y1 = 8, z1 = -4, x2 = 4, y2 = 16, z2 = 8Output:NoExplanation:The given vectors: 2i + 8j – 4k and 4i + 16j + 8k are not collinear.

**Approach:** The problem can be solved based on the idea that two vectors are collinear if any of the following conditions are satisfied:

- Two vectors
**A**and**B**are collinear if there exists a number**n**, such that**A**=**n****ยท b.** - Two vectors are collinear if relations of their coordinates are equal, i.e.
**x1 / x2 = y1 / y2 = z1 / z2**.**Note:**This condition is not valid if one of the components of the vector is zero. - Two vectors are collinear if their cross product is equal to the
*NULL Vector*.

Therefore, to solve the problem, the idea is to check if the cross-product of the two given vectors is equal to the *NULL Vector* or not. If found to be true, then print **Yes**. Otherwise, print **No**.

Below is the implementation of the above approach:

## C++14

`// C++ program for the above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to calculate cross` `// product of two vectors` `void` `crossProduct(` `int` `vect_A[],` ` ` `int` `vect_B[],` ` ` `int` `cross_P[])` `{` ` ` `// Update cross_P[0]` ` ` `cross_P[0]` ` ` `= vect_A[1] * vect_B[2]` ` ` `- vect_A[2] * vect_B[1];` ` ` `// Update cross_P[1]` ` ` `cross_P[1]` ` ` `= vect_A[2] * vect_B[0]` ` ` `- vect_A[0] * vect_B[2];` ` ` `// Update cross_P[2]` ` ` `cross_P[2]` ` ` `= vect_A[0] * vect_B[1]` ` ` `- vect_A[1] * vect_B[0];` `}` `// Function to check if two given` `// vectors are collinear or not` `void` `checkCollinearity(` `int` `x1, ` `int` `y1,` ` ` `int` `z1, ` `int` `x2,` ` ` `int` `y2, ` `int` `z2)` `{` ` ` `// Store the first and second vectors` ` ` `int` `A[3] = { x1, y1, z1 };` ` ` `int` `B[3] = { x2, y2, z2 };` ` ` `// Store their cross product` ` ` `int` `cross_P[3];` ` ` `// Calculate their cross product` ` ` `crossProduct(A, B, cross_P);` ` ` `// Check if their cross product` ` ` `// is a NULL Vector or not` ` ` `if` `(cross_P[0] == 0 && cross_P[1] == 0` ` ` `&& cross_P[2] == 0)` ` ` `cout << ` `"Yes"` `;` ` ` `else` ` ` `cout << ` `"No"` `;` `}` `// Driver Code` `int` `main()` `{` ` ` `// Given coordinates` ` ` `// of the two vectors` ` ` `int` `x1 = 4, y1 = 8, z1 = 12;` ` ` `int` `x2 = 8, y2 = 16, z2 = 24;` ` ` `checkCollinearity(x1, y1, z1,` ` ` `x2, y2, z2);` ` ` `return` `0;` `}` |

## Java

`// Java program for the above approach` `class` `GFG{` ` ` `// Function to calculate cross` `// product of two vectors` `static` `void` `crossProduct(` `int` `vect_A[],` ` ` `int` `vect_B[],` ` ` `int` `cross_P[])` `{` ` ` ` ` `// Update cross_P[0]` ` ` `cross_P[` `0` `] = vect_A[` `1` `] * vect_B[` `2` `] -` ` ` `vect_A[` `2` `] * vect_B[` `1` `];` ` ` `// Update cross_P[1]` ` ` `cross_P[` `1` `] = vect_A[` `2` `] * vect_B[` `0` `] -` ` ` `vect_A[` `0` `] * vect_B[` `2` `];` ` ` `// Update cross_P[2]` ` ` `cross_P[` `2` `] = vect_A[` `0` `] * vect_B[` `1` `] -` ` ` `vect_A[` `1` `] * vect_B[` `0` `];` `}` `// Function to check if two given` `// vectors are collinear or not` `static` `void` `checkCollinearity(` `int` `x1, ` `int` `y1,` ` ` `int` `z1, ` `int` `x2,` ` ` `int` `y2, ` `int` `z2)` `{` ` ` ` ` `// Store the first and second vectors` ` ` `int` `A[] = { x1, y1, z1 };` ` ` `int` `B[] = { x2, y2, z2 };` ` ` `// Store their cross product` ` ` `int` `cross_P[] = ` `new` `int` `[` `3` `];` ` ` `// Calculate their cross product` ` ` `crossProduct(A, B, cross_P);` ` ` `// Check if their cross product` ` ` `// is a NULL Vector or not` ` ` `if` `(cross_P[` `0` `] == ` `0` `&& cross_P[` `1` `] == ` `0` `&&` ` ` `cross_P[` `2` `] == ` `0` `)` ` ` `System.out.print(` `"Yes"` `);` ` ` `else` ` ` `System.out.print(` `"No"` `);` `}` `// Driver Code` `public` `static` `void` `main (String[] args)` `{` ` ` ` ` `// Given coordinates` ` ` `// of the two vectors` ` ` `int` `x1 = ` `4` `, y1 = ` `8` `, z1 = ` `12` `;` ` ` `int` `x2 = ` `8` `, y2 = ` `16` `, z2 = ` `24` `;` ` ` `checkCollinearity(x1, y1, z1,` ` ` `x2, y2, z2);` `}` `}` `// This code is contributed by AnkThon` |

## Python3

`# Python3 program for the above approach` `# Function to calculate cross` `# product of two vectors` `def` `crossProduct(vect_A, vect_B, cross_P):` ` ` `# Update cross_P[0]` ` ` `cross_P[` `0` `] ` `=` `(vect_A[` `1` `] ` `*` `vect_B[` `2` `] ` `-` ` ` `vect_A[` `2` `] ` `*` `vect_B[` `1` `])` ` ` `# Update cross_P[1]` ` ` `cross_P[` `1` `] ` `=` `(vect_A[` `2` `] ` `*` `vect_B[` `0` `] ` `-` ` ` `vect_A[` `0` `] ` `*` `vect_B[` `2` `])` ` ` `# Update cross_P[2]` ` ` `cross_P[` `2` `] ` `=` `(vect_A[` `0` `] ` `*` `vect_B[` `1` `] ` `-` ` ` `vect_A[` `1` `] ` `*` `vect_B[` `0` `])` `# Function to check if two given` `# vectors are collinear or not` `def` `checkCollinearity(x1, y1, z1, x2, y2, z2):` ` ` ` ` `# Store the first and second vectors` ` ` `A ` `=` `[x1, y1, z1]` ` ` `B ` `=` `[x2, y2, z2]` ` ` `# Store their cross product` ` ` `cross_P ` `=` `[` `0` `for` `i ` `in` `range` `(` `3` `)]` ` ` `# Calculate their cross product` ` ` `crossProduct(A, B, cross_P)` ` ` `# Check if their cross product` ` ` `# is a NULL Vector or not` ` ` `if` `(cross_P[` `0` `] ` `=` `=` `0` `and` ` ` `cross_P[` `1` `] ` `=` `=` `0` `and` ` ` `cross_P[` `2` `] ` `=` `=` `0` `):` ` ` `print` `(` `"Yes"` `)` ` ` `else` `:` ` ` `print` `(` `"No"` `)` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` ` ` `# Given coordinates` ` ` `# of the two vectors` ` ` `x1 ` `=` `4` ` ` `y1 ` `=` `8` ` ` `z1 ` `=` `12` ` ` `x2 ` `=` `8` ` ` `y2 ` `=` `16` ` ` `z2 ` `=` `24` ` ` `checkCollinearity(x1, y1, z1, x2, y2, z2)` `# This code is contributed by bgangwar59` |

## C#

`// C# program for the above approach` `using` `System;` `class` `GFG{` ` ` `// Function to calculate cross` `// product of two vectors` `static` `void` `crossProduct(` `int` `[]vect_A,` ` ` `int` `[]vect_B,` ` ` `int` `[]cross_P)` `{` ` ` ` ` `// Update cross_P[0]` ` ` `cross_P[0] = vect_A[1] * vect_B[2] -` ` ` `vect_A[2] * vect_B[1];` ` ` `// Update cross_P[1]` ` ` `cross_P[1] = vect_A[2] * vect_B[0] -` ` ` `vect_A[0] * vect_B[2];` ` ` `// Update cross_P[2]` ` ` `cross_P[2] = vect_A[0] * vect_B[1] -` ` ` `vect_A[1] * vect_B[0];` `}` `// Function to check if two given` `// vectors are collinear or not` `static` `void` `checkCollinearity(` `int` `x1, ` `int` `y1,` ` ` `int` `z1, ` `int` `x2,` ` ` `int` `y2, ` `int` `z2)` `{` ` ` ` ` `// Store the first and second vectors` ` ` `int` `[]A = { x1, y1, z1 };` ` ` `int` `[]B = { x2, y2, z2 };` ` ` `// Store their cross product` ` ` `int` `[]cross_P = ` `new` `int` `[3];` ` ` `// Calculate their cross product` ` ` `crossProduct(A, B, cross_P);` ` ` `// Check if their cross product` ` ` `// is a NULL Vector or not` ` ` `if` `(cross_P[0] == 0 && cross_P[1] == 0 &&` ` ` `cross_P[2] == 0)` ` ` `Console.Write(` `"Yes"` `);` ` ` `else` ` ` `Console.Write(` `"No"` `);` `}` `// Driver Code` `public` `static` `void` `Main (` `string` `[] args)` `{` ` ` ` ` `// Given coordinates` ` ` `// of the two vectors` ` ` `int` `x1 = 4, y1 = 8, z1 = 12;` ` ` `int` `x2 = 8, y2 = 16, z2 = 24;` ` ` `checkCollinearity(x1, y1, z1,` ` ` `x2, y2, z2);` `}` `}` `// This code is contributed by AnkThon` |

## Javascript

`<script>` ` ` `// Javascript program for the` ` ` `// above approach` ` ` `// Function to calculate cross` ` ` `// product of two vectors` ` ` `function` `crossProduct(vect_A,` ` ` `vect_B,` ` ` `cross_P) {` ` ` `// Update cross_P[0]` ` ` `cross_P[0]` ` ` `= vect_A[1] * vect_B[2]` ` ` `- vect_A[2] * vect_B[1];` ` ` `// Update cross_P[1]` ` ` `cross_P[1]` ` ` `= vect_A[2] * vect_B[0]` ` ` `- vect_A[0] * vect_B[2];` ` ` `// Update cross_P[2]` ` ` `cross_P[2]` ` ` `= vect_A[0] * vect_B[1]` ` ` `- vect_A[1] * vect_B[0];` ` ` `}` ` ` `// Function to check if two given` ` ` `// vectors are collinear or not` ` ` `function` `checkCollinearity(x1, y1,` ` ` `z1, x2,` ` ` `y2, z2) {` ` ` `// Store the first and second vectors` ` ` `let A = [x1, y1, z1];` ` ` `let B = [x2, y2, z2];` ` ` `// Store their cross product` ` ` `let cross_P = [];` ` ` `// Calculate their cross product` ` ` `crossProduct(A, B, cross_P);` ` ` `// Check if their cross product` ` ` `// is a NULL Vector or not` ` ` `if` `(cross_P[0] == 0 && cross_P[1] == 0` ` ` `&& cross_P[2] == 0)` ` ` `document.write(` `"Yes"` `)` ` ` `else` ` ` `document.write(` `"No"` `)` ` ` `}` ` ` `// Driver Code` ` ` `// Given coordinates` ` ` `// of the two vectors` ` ` `let x1 = 4, y1 = 8, z1 = 12;` ` ` `let x2 = 8, y2 = 16, z2 = 24;` ` ` `checkCollinearity(x1, y1, z1,` ` ` `x2, y2, z2);` ` ` `// This code is contributed by Hritik` ` ` ` ` `</script>` |

**Output:**

Yes

**Time Complexity:** O(1)**Auxiliary Space:** O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**