# Check if a number is a Pangram or not

• Last Updated : 31 Jan, 2023

Given an integer N, the task is to check whether the given number is a pangram or not.
Note: A Pangram Number contains every digit [0- 9] at least once.

Examples:

Input : N = 10239876540022
Output : Yes
Explanation: N contains all the digits from 0 to 9. Therefore, it is a pangram.

Input : N = 234567890
Output : No
Explanation: N doesn’t contain the digit 1. Therefore, it is not a pangram.

Set-based Approach: The idea is to use Sets to store the count of distinct digits present in N. Follow the steps below to solve the problem:

Below is the implementation of the above approach:

## C++

 `// C++ implementation of above approach``#include ``using` `namespace` `std;` `// Function to check if N``// is a Pangram or not``string numberPangram(string N)``{` `    ``// Add all characters pf arrNum to set``    ``set<``char``> setNum;` `    ``for` `(``int` `i = 0; i < N.length(); i++) {``        ``setNum.insert(N[i]);``    ``}` `    ``// If the length of set is 10``    ``// The number is a Pangram``    ``if` `(setNum.size() == 10)``        ``return` `"True"``;``    ``else``        ``return` `"False"``;``}` `// Driver code``int` `main()``{``    ``string N = ``"10239876540022"``;``    ``cout << (numberPangram(N));``}` `// This code is contributed by ukasp.`

## Java

 `// Java implementation of above approach``import` `java.math.BigInteger;``import` `java.util.HashSet;` `class` `GFG{``    ` `// Function to check if N``// is a Pangram or not``static` `String numberPangram(BigInteger N)``{``    ` `    ``// Stores equivalent string``    ``// representation of N``    ``String num = N.toString();` `    ``// Convert the string to Character array``    ``char``[] arrNum = num.toCharArray();` `    ``// Add all characters pf arrNum to set``    ``HashSet setNum = ``new` `HashSet();` `    ``for``(``char` `ch : arrNum)``    ``{``        ``setNum.add(ch);``    ``}``    ` `    ``// If the length of set is 10``    ``// The number is a Pangram``    ``if` `(setNum.size() == ``10``)``        ``return` `"True"``;``    ``else``        ``return` `"False"``;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``BigInteger N = ``new` `BigInteger(``"10239876540022"``);``    ``System.out.print(numberPangram(N));``}``}` `// This code is contributed by abhinavjain194`

## Python3

 `# Python3 implementation of above approach` `# Function to check if N``# is a Pangram or not``def` `numberPangram(N):``  ` `    ``# Stores equivalent string``    ``# representation of N``    ``num ``=` `str``(N)``    ` `    ``# Convert the string to set``    ``setnum ``=` `set``(num)``    ` `    ``# If the length of set is 10``    ``if``(``len``(setnum) ``=``=` `10``):``      ` `          ``# The number is a Pangram``        ``return` `True``    ``else``:``        ``return` `False`  `# Driver Code` `N ``=` `10239876540022``print``(numberPangram(N))`

## C#

 `// C# implementation of above approach``using` `System;``using` `System.Globalization;``using` `System.Numerics;``using` `System.Collections.Generic;``class` `GFG``{``    ` `// Function to check if N``// is a Pangram or not``static` `String numberPangram(``ulong`  `N)``{``    ` `    ``// Stores equivalent string``    ``// representation of N``    ``string` `num = N.ToString();` `    ``// Convert the string to Character array``    ``char``[] arrNum = num.ToCharArray();` `    ``// Add all characters pf arrNum to set``   ``HashSet<``char``> setNum = ``new` `HashSet<``char``>();` `    ``foreach``(``char` `ch ``in` `arrNum)``    ``{``        ``setNum.Add(ch);``    ``}``    ` `    ``// If the length of set is 10``    ``// The number is a Pangram``    ``if` `(setNum.Count == 10)``        ``return` `"True"``;``    ``else``        ``return` `"False"``;``}` `// Driver Code``    ``static` `void` `Main() {``      ``ulong`  `N = 10239876540022;``      ``Console.Write(numberPangram(N));``      ``}``}` `// This code is contributed by SoumikMondal`

## Javascript

 ``

Output:

`True`

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

Hashing-based Approach: Follow the steps to solve the problem:

Below is the implementation of the above approach:

## C++

 `// C++ code to implement the approach``#include ``#include ``#include ` `bool` `numberPangram(``long` `N) {``    ``// Stores equivalent string representation of N``    ``std::string num = std::to_string(N);` `    ``// Count frequencies of digits present in N``    ``std::map<``char``, ``int``> frequency;``    ``for` `(``int` `i = 0; i < num.length(); i++) {``        ``char` `digit = num[i];``        ``frequency[digit]++;``    ``}` `    ``// If the size of the map frequency is 10``    ``if` `(frequency.size() == 10) {``        ``// The number is a Pangram``        ``return` `true``;``    ``} ``else` `{``        ``return` `false``;``    ``}``}` `// Driver code``int` `main() {``    ``long` `N = 10239876540022;``    ``std::cout <<  (numberPangram(N) ? ``"true"` `: ``"false"``) << std::endl;``    ``return` `0;``}`  `// This code is contributed by phasing17`

## Java

 `import` `java.util.*;` `class` `GFG {` `  ``// Driver code``  ``public` `static` `void` `main(String[] args) {``    ``long` `N = 10239876540022L;``    ``boolean` `result = numberPangram(N);``    ``System.out.println(result);``  ``}` `  ``public` `static` `boolean` `numberPangram(``long` `N) {` `    ``// Stores equivalent string representation of N``    ``String num = Long.toString(N);` `    ``// Count frequencies of digits present in N``    ``Map frequency = ``new` `HashMap<>();``    ``for` `(``int` `i = ``0``; i < num.length(); i++) {``      ``char` `digit = num.charAt(i);``      ``if` `(frequency.containsKey(digit)) {``        ``frequency.put(digit, frequency.get(digit) + ``1``);``      ``} ``else` `{``        ``frequency.put(digit, ``1``);``      ``}``    ``}` `    ``// If the length of the dictionary frequency is 10``    ``if` `(frequency.size() == ``10``)``    ``{``      ` `      ``// The number is a Pangram``      ``return` `true``;``    ``} ``else` `{``      ``return` `false``;``    ``}``  ``}``}` `// This code is contributed by phasing17.`

## Python3

 `# Python implementation of above approach` `from` `collections ``import` `Counter` `# Function to check if``# N is a Pangram or not``def` `numberPangram(N):``  ` `    ``# Stores equivalent string``    ``# representation of N``    ``num ``=` `str``(N)``    ` `    ``# Count frequencies of``    ``# digits present in N``    ``frequency ``=` `Counter(num)``    ` `    ``# If the length of the``    ``# dictionary frequency is 10``    ``if``(``len``(frequency) ``=``=` `10``):``      ` `          ``# The number is a Pangram``        ``return` `True``    ``else``:``        ``return` `False`  `# Driver Code` `N ``=``10239876540022``print``(numberPangram(N))`

## C#

 `// C# code to implement the approach``using` `System;``using` `System.Collections.Generic;` `class` `GFG {` `  ``// Driver Code``  ``static` `void` `Main(``string``[] args)``  ``{``    ``long` `N = 10239876540022L;` `    ``// Function call``    ``bool` `result = NumberPangram(N);``    ``Console.WriteLine(result);``  ``}` `  ``static` `bool` `NumberPangram(``long` `N)``  ``{``    ``// Stores equivalent string representation of N``    ``string` `num = N.ToString();` `    ``// Count frequencies of digits present in N``    ``Dictionary<``char``, ``int``> frequency``      ``= ``new` `Dictionary<``char``, ``int``>();``    ``for` `(``int` `i = 0; i < num.Length; i++) {``      ``char` `digit = num[i];``      ``if` `(frequency.ContainsKey(digit)) {``        ``frequency[digit]++;``      ``}``      ``else` `{``        ``frequency.Add(digit, 1);``      ``}``    ``}` `    ``// If the length of the dictionary frequency is 10``    ``if` `(frequency.Count == 10)``    ``{` `      ``// The number is a Pangram``      ``return` `true``;``    ``}``    ``else` `{``      ``return` `false``;``    ``}``  ``}``}` `// This code is contributed by phasing17.`

## Javascript

 `// JavaScript implementation of above approach` `// Function to check if``// N is a Pangram or not``function` `numberPangram(N) {` `    ``// Stores equivalent string``    ``// representation of N``    ``let num = N.toString();` `    ``// Count frequencies of``    ``// digits present in N``    ``let frequency = {};``    ``for` `(let i = 0; i < num.length; i++) {``        ``let digit = num[i];``        ``if` `(frequency[digit]) {``            ``frequency[digit] += 1;``        ``} ``else` `{``            ``frequency[digit] = 1;``        ``}``    ``}` `    ``// If the length of the``    ``// dictionary frequency is 10``    ``if` `(Object.keys(frequency).length === 10) {``        ``// The number is a Pangram``        ``return` `True;``    ``} ``else` `{``        ``return` `False;``    ``}``}` `// Driver Code``let N = 10239876540022;``console.log(numberPangram(N));`

Output:

`True`

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

My Personal Notes arrow_drop_up