Check if a line passes through the origin

16 Jun, 2022
Given two coordinates of a line as (x1, y1) and (x2, y2), find if the line passing through these points also passes through origin or not. 
Examples:  
Input : (x1, y1) = (10, 0)
        (x2, y2) = (20, 0)
Output : Yes
The line passing through these points
clearly passes through the origin as 
the line is x axis.

Input : (x1, y1) = (1, 28)
        (x2, y2) = (2, 56)
Output : Yes
 
Approach: Equation of a line passing through two points (x1, y1) and (x2, y2) is given by y-y1 = ((y2-y1) / (x2-x1))(x-x1) + c If line is also passing through origin, then c=0, so equation of line becomes y-y1 = ((y2-y1) / (x2-x1))(x-x1) Keeping x=0, y=0 in the above equation we get, x1(y2-y1) = y1(x2-x1) So above equation must be satisfied if any line passing through two coordinates (x1, y1) and (x2, y2) also passes through origin (0, 0). 
C++
Java
Python3
C#
PHP
Javascript
/* C++ program to find if line passing through   two coordinates also passes through origin   or not */#include <bits/stdc++.h>using namespace std; bool checkOrigin(int x1, int y1, int x2, int y2){   return (x1 * (y2 - y1) == y1 * (x2 - x1));} // Driver codeint main(){    if (checkOrigin(1, 28, 2, 56) == true)      cout << "Yes";    else      cout << "No";    return 0;}
// Java program to find if line passing through// two coordinates also passes through origin// or notimport java.io.*; class GFG {         static boolean checkOrigin(int x1, int y1,                                       int x2, int y2)    {        return (x1 * (y2 - y1) == y1 * (x2 - x1));    }     // Driver code    public static void main (String[] args)    {        if (checkOrigin(1, 28, 2, 56) == true)            System.out.println("Yes");        else            System.out.println("No");    }} // This code is contributed by Ajit.
# Python program to find if line# passing through two coordinates# also passes through origin or not def checkOrigin(x1, y1, x2, y2):    return (x1 * (y2 - y1) == y1 * (x2 - x1))     # Driver codeif (checkOrigin(1, 28, 2, 56) == True):    print("Yes")else:    print("No")     # This code is contributed# by Anant Agarwal.
// C# program to find if line passing through// two coordinates also passes through origin// or notusing System; class GFG {     static bool checkOrigin(int x1, int y1,                            int x2, int y2)    {        return (x1 * (y2 - y1) == y1 * (x2 - x1));    }     // Driver code    public static void Main()    {        if (checkOrigin(1, 28, 2, 56) == true)            Console.WriteLine("Yes");        else            Console.WriteLine("No");    }} // This code is contributed by vt_m.
<?php// PHP program to find if// line passing through// two coordinates also// passes through origin// or not function checkOrigin($x1, $y1,                     $x2, $y2){    return ($x1 * ($y2 - $y1) ==              $y1 * ($x2 - $x1));} // Driver codeif (checkOrigin(1, 28, 2, 56) == true)    echo("Yes");else    echo("No"); // This code is contributed by Ajit.?>
<script> // JavaScript program to find if line passing through// two coordinates also passes through origin// or not     function checkOrigin(x1, y1, x2, y2)    {        return (x1 * (y2 - y1) == y1 * (x2 - x1));    }   // Driver Code         if (checkOrigin(1, 28, 2, 56) == true)            document.write("Yes");        else            document.write("No");                       // This code is contributed by chinmoy1997pal.</script>
Yes
 
Time Complexity: O(1) Auxiliary Space: O(1)
This article is contributed by Aarti_Rathi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
jit_t
chinmoy1997pal
codewithshinchan
Geometric
School Programming
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.