# Check if a number is formed by Concatenation of 1, 14 or 144 only

Given a number . The task is to check if the number is formed by concatenating the numbers 1, 14 and 144 only any number of times and in any order.

If it is possible, print YES otherwise print NO.

Example:

```Input: N = 141411
Output: YES

Input: N = 14134
Output: NO
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

The idea is to fetch single digit, double digit and triple digit numbers from the end and check if any of them matches with 1, 14 and 144 respectively. If any of them matches, divide the number with that and repeat the above step until the number is greater than zero.

Below is the implementation of using above approach:

## C++

 `// C++ program to check if a number is formed ` `// by Concatenation of 1, 14 or 144 only ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function to check if a number is formed ` `// by Concatenation of 1, 14 or 144 only ` `string checkNumber(``int` `N) ` `{ ` `    ``int` `temp = N; ` ` `  `    ``while` `(temp > 0) { ` `        ``// check for each possible digit ` `        ``// if given number consist other then ` `        ``// 1, 14, 144 print NO else print YES ` `        ``if` `(temp % 1000 == 144) ` `            ``temp /= 1000; ` `        ``else` `if` `(temp % 100 == 14) ` `            ``temp /= 100; ` `        ``else` `if` `(temp % 10 == 1) ` `            ``temp /= 10; ` `        ``else` `{ ` `            ``return` `"NO"``; ` `        ``} ` `    ``} ` ` `  `    ``return` `"YES"``; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `N = 1414; ` ` `  `    ``cout << checkNumber(N); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to check if a number is formed ` `// by Concatenation of 1, 14 or 144 only ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  ` `  `// Function to check if a number is formed ` `// by Concatenation of 1, 14 or 144 only ` `static` `String checkNumber(``int` `N) ` `{ ` `    ``int` `temp = N; ` ` `  `    ``while` `(temp > ``0``) { ` `        ``// check for each possible digit ` `        ``// if given number consist other then ` `        ``// 1, 14, 144 print NO else print YES ` `        ``if` `(temp % ``1000` `== ``144``) ` `            ``temp /= ``1000``; ` `        ``else` `if` `(temp % ``100` `== ``14``) ` `            ``temp /= ``100``; ` `        ``else` `if` `(temp % ``10` `== ``1``) ` `            ``temp /= ``10``; ` `        ``else` `{ ` `            ``return` `"NO"``; ` `        ``} ` `    ``} ` ` `  `    ``return` `"YES"``; ` `} ` ` `  `// Driver Code ` ` `  ` `  `    ``public` `static` `void` `main (String[] args) { ` `        ``int` `N = ``1414``; ` ` `  `    ``System.out.println(checkNumber(N)); ` `    ``} ` `} ` `// This code is contributed by anuj_67.. `

## Python 3

 `# Python 3 program to check if a  ` `# number is formed by Concatenation  ` `# of 1, 14 or 144 only ` ` `  `# Function to check if a number is formed ` `# by Concatenation of 1, 14 or 144 only ` `def` `checkNumber(N): ` `    ``temp ``=` `N ` ` `  `    ``while` `(temp > ``0``): ` `         `  `        ``# check for each possible digit ` `        ``# if given number consist other then ` `        ``# 1, 14, 144 print NO else print YES ` `        ``if` `(temp ``%` `1000` `=``=` `144``): ` `            ``temp ``/``=` `1000` `        ``elif` `(temp ``%` `100` `=``=` `14``): ` `            ``temp ``/``=` `100` `        ``elif` `(temp ``%` `10` `=``=` `1``): ` `            ``temp ``/``=` `10` `        ``else``:  ` `            ``return` `"YES"` ` `  `    ``return` `"NO"` ` `  `# Driver Code ` `N ``=` `1414``; ` ` `  `print``(checkNumber(N)); ` ` `  `# This code is contributed  ` `# by Akanksha Rai `

## C#

 `// C# program to check if a number is formed ` `// by Concatenation of 1, 14 or 144 only ` ` `  `using` `System; ` ` `  `class` `GFG { ` `     `  ` `  `// Function to check if a number is formed ` `// by Concatenation of 1, 14 or 144 only ` `static` `String checkNumber(``int` `N) ` `{ ` `    ``int` `temp = N; ` ` `  `    ``while` `(temp > 0) { ` `        ``// check for each possible digit ` `        ``// if given number consist other then ` `        ``// 1, 14, 144 print NO else print YES ` `        ``if` `(temp % 1000 == 144) ` `            ``temp /= 1000; ` `        ``else` `if` `(temp % 100 == 14) ` `            ``temp /= 100; ` `        ``else` `if` `(temp % 10 == 1) ` `            ``temp /= 10; ` `        ``else` `{ ` `            ``return` `"NO"``; ` `        ``} ` `    ``} ` ` `  `    ``return` `"YES"``; ` `} ` ` `  `// Driver Code ` ` `  ` `  `    ``public` `static` `void` `Main () { ` `        ``int` `N = 1414; ` ` `  `    ``Console.WriteLine(checkNumber(N)); ` `    ``} ` `} ` `// This code is contributed by anuj_67.. `

## PHP

 ` 0)  ` `    ``{ ` `        ``// check for each possible digit ` `        ``// if given number consist other then ` `        ``// 1, 14, 144 print NO else print YES ` `        ``if` `(``\$temp` `% 1000 == 144) ` `            ``\$temp` `/= 1000; ` `        ``else` `if` `(``\$temp` `% 100 == 14) ` `            ``\$temp` `/= 100; ` `        ``else` `if` `(``\$temp` `% 10 == 1) ` `            ``\$temp` `/= 10; ` `        ``else`  `        ``{ ` `            ``return` `"YES"``; ` `        ``} ` `    ``} ` ` `  `    ``return` `"NO"``; ` `} ` ` `  `// Driver Code ` `\$N` `= 1414; ` `echo` `checkNumber(``\$N``); ` ` `  `// This code is contributed by Tushil ` `?> `

Output:

```YES
``` My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : vt_m, jit_t, Akanksha_Rai

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.