Thursday, October 23, 2025
HomeData Modelling & AIPrint all 3 digit repeating numbers in a very large number

Print all 3 digit repeating numbers in a very large number

Given a very large number, print all the 3 digit repeating numbers with their frequency. If a 3 digit number appears more than once, print the number and its frequency. 

Example: 

Input: 123412345123456
Output: 123 - 3 times
         234 - 3 times
         345 - 2 times 

Input: 43243243
Output: 432 - 2 times
        324 - 2 times
        243 - 2 times

Approach: Since the number is very large, it is stored in a string. Initially, the first three-digit number will be the first three characters from the left. Iterate in the string from the 3rd index from the left in the string and do %100 to remove the first character and append the ith index number at the end to get the new number. Increase the frequency of the number in the hash map. In the end, when all the 3-digit numbers are generated, print all the numbers which have a frequency of more than 1. 

Below is the implementation of the above idea: 

C++




// CPP program to print 3 digit repeating numbers
#include <bits/stdc++.h>
using namespace std;
 
// function to print 3
// digit repeating numbers
void printNum(string s)
{
    int i = 0, j = 0, val = 0;
 
    // Hashmap to store the
    // frequency of a 3 digit number
    map <int, int> mp;
 
    // first three digit number
    val = (s[0] - '0') * 100
            + (s[1] - '0') * 10
            + (s[2] - '0');
 
    mp[val] = 1;
    for (i = 3; i < s.length(); i++) {
        val = (val % 100) * 10 + s[i] - '0';
 
        // if key already exists
        // increase value by 1
        if (mp.find(val) != mp.end()) {
            mp[val] = mp[val] + 1;
        }
        else {
            mp[val] = 1;
        }
    }
 
    // Output the three digit numbers with frequency>1
    for (auto m : mp) {
        int key = m.first;
        int value = m.second;
        if (value > 1)
            cout << key  << " - " << value << " times" << endl;
    }
}
 
// Driver Code
int main()
{
    // Input string
    string input = "123412345123456";
  
    // Calling Function
    printNum(input);
}
// This code is contributed by Nishant Tanwar


Java




// Java program to print 3 digit repeating numbers
import java.util.*;
import java.lang.*;
 
public class GFG {
 
    // function to print 3
    // digit repeating numbers
    static void printNum(String s)
    {
        int i = 0, j = 0, val = 0;
 
        // Hashmap to store the
        // frequency of a 3 digit number
        LinkedHashMap<Integer, Integer> hm
            = new LinkedHashMap<>();
 
        // first three digit number
        val = (s.charAt(0) - '0') * 100
              + (s.charAt(1) - '0') * 10
              + (s.charAt(2) - '0');
 
        hm.put(val, 1);
        for (i = 3; i < s.length(); i++) {
            val = (val % 100) * 10 + s.charAt(i) - '0';
 
            // if key already exists
            // increase value by 1
            if (hm.containsKey(val)) {
                hm.put(val, hm.get(val) + 1);
            }
            else {
                hm.put(val, 1);
            }
        }
 
        // Output the three digit numbers with frequency>1
        for (Map.Entry<Integer, Integer> en : hm.entrySet()) {
            int key = en.getKey();
            int value = en.getValue();
            if (value > 1)
                System.out.println(key + " - " + value + " times");
        }
    }
 
    // Driver Code
    public static void main(String args[])
    {
 
        // Input string
        String input = "123412345123456";
 
        // Calling Function
        printNum(input);
    }
}


Python3




# Python3 program to print
# 3 digit repeating numbers
 
# Function to print 3
# digit repeating numbers
def printNum(s):
 
    i, j, val = 0, 0, 0
   
    # Hashmap to store the
    # frequency of a 3 digit number
    mp = {}
   
    # first three digit number
    val = ((ord(s[0]) - ord('0')) * 100 +
           (ord(s[1]) - ord('0')) * 10 +
           (ord(s[2]) - ord('0')))
   
    mp[val] = 1
    for i in range (3, len(s)):
        val = (val % 100) * 10 + ord(s[i]) - ord('0')
   
        # if key already exists
        # increase value by 1
        if (val in mp):
            mp[val] = mp[val] + 1
        else:
            mp[val] = 1
       
    # Output the three digit
    # numbers with frequency>1
    for m in mp:
        key = m
        value = mp[m]
        if (value > 1):
            print (key, " - ", value, " times")
   
# Driver Code
if __name__ == "__main__":
 
    # Input string
    input = "123412345123456"
    
    # Calling Function
    printNum(input)
 
# This code is contributed by Chitranayal


C#




// C# program to print 3 digit repeating numbers
using System;
using System.Collections.Generic;            
 
class GFG
{
 
    // function to print 3
    // digit repeating numbers
    static void printNum(String s)
    {
        int i = 0, val = 0;
 
        // Hashmap to store the
        // frequency of a 3 digit number
        Dictionary<int,
                   int> hm = new Dictionary<int,
                                            int>();
 
        // first three digit number
        val = (s[0] - '0') * 100 +
              (s[1] - '0') * 10 +
              (s[2] - '0');
 
        hm.Add(val, 1);
        for (i = 3; i < s.Length; i++)
        {
            val = (val % 100) * 10 + s[i] - '0';
 
            // if key already exists
            // increase value by 1
            if (hm.ContainsKey(val))
            {
                hm[val] = hm[val] + 1;
            }
            else
            {
                hm.Add(val, 1);
            }
        }
 
        // Output the three digit numbers with frequency>1
        foreach(KeyValuePair<int, int> en in hm)
        {
            int key = en.Key;
            int value = en.Value;
            if (value > 1)
                Console.WriteLine(key + " - " +
                                  value + " times");
        }
    }
 
    // Driver Code
    public static void Main(String []args)
    {
 
        // Input string
        String input = "123412345123456";
 
        // Calling Function
        printNum(input);
    }
}
 
// This code is contributed by PrinciRaj1992


Javascript




<script>
 
// Javascript program to print 3 digit repeating numbers
     
    // function to print 3
    // digit repeating numbers
    function printNum(s)
    {
        let i = 0, j = 0, val = 0;
  
        // Hashmap to store the
        // frequency of a 3 digit number
        let hm = new Map();
  
        // first three digit number
        val = (s[0].charCodeAt(0) - '0'.charCodeAt(0)) * 100
              + (s[1].charCodeAt(0) - '0'.charCodeAt(0)) * 10
              + (s[2].charCodeAt(0) - '0'.charCodeAt(0));
  
        hm.set(val, 1);
        for (i = 3; i < s.length; i++) {
            val = (val % 100) * 10 + s[i].charCodeAt(0) - '0'.charCodeAt(0);
  
            // if key already exists
            // increase value by 1
            if (hm.has(val)) {
                hm.set(val, hm.get(val) + 1);
            }
            else {
                hm.set(val, 1);
            }
        }
  
        // Output the three digit numbers with frequency>1
        for (let [Key, Value] of hm.entries()) {
            let key = Key;
            let value = Value;
            if (value > 1)
                document.write(key + " - " + value + " times<br>");
        }
    }
     
    // Driver Code
     
    // Input string
    let input = "123412345123456";
    // Calling Function
    printNum(input);
     
 
// This code is contributed by avanitrachhadiya2155
</script>


Output

123 - 3 times
234 - 3 times
345 - 2 times
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS