# Find Tangent at a given point on the curve

Given a curve **[ y = x(A – x) ], **the task is to find tangent at given point (x, y) on that curve, where A, x, y are integers.**Examples:**

Input:A = 2, x = 2, y = 0Output:y = -2x - 4 Since y = x(2 - x) y = 2x - x^2 differentiate it with respect to x dy/dx = 2 - 2x put x = 2, y = 0 in this equation dy/dx = 2 - 2* 2 = -2 equation => (Y - 0 ) = ((-2))*( Y - 2) => y = -2x -4Input:A = 3, x = 4, y = 5Output:Not possible Point is not on that curve

**Approach:**

- First find if the given point is on that curve or not.
- If the point is on that curve then, Find the derivative
- Calculate the gradient of the tangent by Putting x, y in dy/dx.
- Determine the equation of the tangent by substituting the gradient of the tangent and the coordinates of the given point into the gradient-point form of the straight line equation, where Equation of normal is Y – y = ( dy/dx ) * (X – x).

Below is the implementation of the above approach:

## C++

`// C++ program for find Tangent` `// on a curve at given point` ` ` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// function for find Tangent` `void` `findTangent(` `int` `A, ` `int` `x, ` `int` `y)` `{` ` ` `// differentiate given equation` ` ` `int` `dif = A - x * 2;` ` ` ` ` `// check that point on the curve or not` ` ` `if` `(y == (2 * x - x * x)) {` ` ` ` ` `// if differentiate is negative` ` ` `if` `(dif < 0)` ` ` `cout << ` `"y = "` ` ` `<< dif << ` `"x"` `<< (x * dif) + (y);` ` ` ` ` `else` `if` `(dif > 0)` ` ` ` ` `// differentiate is positive` ` ` `cout << ` `"y = "` ` ` `<< dif << ` `"x+"` `<< -x * dif + y;` ` ` ` ` `// differentiate is zero` ` ` `else` ` ` `cout << ` `"Not possible"` `;` ` ` `}` `}` ` ` `// Driver code` `int` `main()` `{` ` ` `// declare variable` ` ` `int` `A = 2, x = 2, y = 0;` ` ` ` ` `// call function findTangent` ` ` `findTangent(A, x, y);` ` ` ` ` `return` `0;` `}` |

## Java

`// Java program for find Tangent` `// on a curve at given point` `import` `java.util.*;` `import` `java.lang.*;` `import` `java.io.*;` ` ` `class` `GFG` `{` ` ` `// function for find Tangent` `static` `void` `findTangent(` `int` `A, ` `int` `x, ` `int` `y)` `{` ` ` `// differentiate given equation` ` ` `int` `dif = A - x * ` `2` `;` ` ` ` ` `// check that point on the curve or not` ` ` `if` `(y == (` `2` `* x - x * x)) {` ` ` ` ` `// if differentiate is negative` ` ` `if` `(dif < ` `0` `)` ` ` `System.out.println( ` `"y = "` ` ` `+ dif + ` `"x"` `+ (x * dif + y));` ` ` ` ` `else` `if` `(dif > ` `0` `)` ` ` ` ` `// differentiate is positive` ` ` `System.out.println( ` `"y = "` ` ` `+ dif + ` `"x+"` `+ -x * dif + y);` ` ` ` ` `// differentiate is zero` ` ` `else` ` ` `System.out.println(` `"Not possible"` `);` ` ` `}` `}` ` ` `// Driver code` `public` `static` `void` `main(String args[])` `{` ` ` `// declare variable` ` ` `int` `A = ` `2` `, x = ` `2` `, y = ` `0` `;` ` ` ` ` `// call function findTangent` ` ` `findTangent(A, x, y);` ` ` `} ` `}` |

## Python3

`# Python3 program for find Tangent` `# on a curve at given point` ` ` `# function for find Tangent` `def` `findTangent(A, x, y) :` ` ` ` ` `# differentiate given equation` ` ` `dif ` `=` `A ` `-` `x ` `*` `2` ` ` ` ` `# check that point on the curve or not` ` ` `if` `y ` `=` `=` `(` `2` `*` `x ` `-` `x ` `*` `x) :` ` ` ` ` `# if differentiate is negative` ` ` `if` `dif < ` `0` `:` ` ` ` ` `print` `(` `"y ="` `,dif,` `"x"` `,(x ` `*` `dif) ` `+` `(y))` ` ` ` ` `# differentiate is positive` ` ` `elif` `dif > ` `0` `:` ` ` ` ` `print` `(` `"y ="` `,dif,` `"x+"` `,` `-` `x ` `*` `dif ` `+` `y)` ` ` ` ` `# differentiate is zero` ` ` `else` `:` ` ` ` ` `print` `(` `"Not Possible"` `)` ` ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` ` ` `# declare variable` ` ` `A, x, y ` `=` `2` `, ` `2` `, ` `0` ` ` ` ` `# call function findTangent` ` ` `findTangent(A, x, y)` ` ` `# This code is contributed by` `# ANKITRAI1` |

## C#

`// C# program for find Tangent` `// on a curve at given point` ` ` `using` `System;` `class` `GFG` `{` ` ` `// function for find Tangent` `static` `void` `findTangent(` `int` `A, ` `int` `x, ` `int` `y)` `{` ` ` `// differentiate given equation` ` ` `int` `dif = A - x * 2;` ` ` ` ` `// check that point on the curve or not` ` ` `if` `(y == (2 * x - x * x)) {` ` ` ` ` `// if differentiate is negative` ` ` `if` `(dif < 0)` ` ` `Console.Write( ` `"y = "` ` ` `+ dif + ` `"x"` `+ (x * dif + y)+` `"\n"` `);` ` ` ` ` `else` `if` `(dif > 0)` ` ` ` ` `// differentiate is positive` ` ` `Console.Write( ` `"y = "` ` ` `+ dif + ` `"x+"` `+ -x * dif + y+` `"\n"` `);` ` ` ` ` `// differentiate is zero` ` ` `else` ` ` `Console.Write(` `"Not possible"` `+` `"\n"` `);` ` ` `}` `}` ` ` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `// declare variable` ` ` `int` `A = 2, x = 2, y = 0;` ` ` ` ` `// call function findTangent` ` ` `findTangent(A, x, y);` ` ` `} ` `}` |

## PHP

`<?php` `// PHP program for find Tangent` `// on a curve at given point` ` ` `// function for find Tangent` `function` `findTangent(` `$A` `, ` `$x` `, ` `$y` `)` `{` ` ` `// differentiate given equation` ` ` `$dif` `= ` `$A` `- ` `$x` `* 2;` ` ` ` ` `// check that point on the` ` ` `// curve or not` ` ` `if` `(` `$y` `== (2 * ` `$x` `- ` `$x` `* ` `$x` `))` ` ` `{` ` ` ` ` `// if differentiate is negative` ` ` `if` `(` `$dif` `< 0)` ` ` `echo` `"y = "` `, ` `$dif` `, ` `"x"` `,` ` ` `(` `$x` `* ` `$dif` `) + (` `$y` `);` ` ` ` ` `else` `if` `(` `$dif` `> 0)` ` ` ` ` `// differentiate is positive` ` ` `echo` `"y = "` `,` ` ` `$dif` `, ` `"x+"` `, -` `$x` `* ` `$dif` `+ ` `$y` `;` ` ` ` ` `// differentiate is zero` ` ` `else` ` ` `echo` `"Not possible"` `;` ` ` `}` `}` ` ` `// Driver code` ` ` `// declare variable` `$A` `= 2;` `$x` `= 2;` `$y` `= 0;` ` ` `// call function findTangent` `findTangent(` `$A` `, ` `$x` `, ` `$y` `);` ` ` `// This code is contributed by Sachin` `?>` |

## Javascript

`<script>` `// javascript program for find Tangent` `// on a curve at given point` ` ` ` ` `// function for find Tangent` `function` `findTangent( A, x, y)` `{` ` ` `// differentiate given equation` ` ` `var` `dif = A - x * 2;` ` ` ` ` `// check that point on the curve or not` ` ` `if` `(y == (2 * x - x * x)) {` ` ` ` ` `// if differentiate is negative` ` ` `if` `(dif < 0)` ` ` `document.write( ` `"y = "` ` ` `+ dif + ` `"x"` `+ (x * dif + y)+` `"\n"` `);` ` ` ` ` `else` `if` `(dif > 0)` ` ` ` ` `// differentiate is positive` ` ` `document.write( ` `"y = "` ` ` `+ dif + ` `"x+"` `+ -x * dif + y+` `"\n"` `);` ` ` ` ` `// differentiate is zero` ` ` `else` ` ` `document.write(` `"Not possible"` `+` `"\n"` `);` ` ` `}` `}` ` ` `// Driver code` ` ` `// declare variable` ` ` `var` `A = 2, x = 2, y = 0;` ` ` ` ` `// call function findTangent` ` ` `findTangent(A, x, y);` `// This code is contributed by bunnyram19.` `</script>` |

**Output:**

y = -2x-4

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.