A company needs to transmit data to another server, and to secure this data during transmission, they opt to use a security key. The security key is identified as the count of the unique repeating digits in the data. For instance, the data “112233” has three repeating digits (1, 2, and 3), so the security key would be 3.
Solution Steps
We will walk through the algorithmic solution to this problem step by step. The solution is implemented using C, C++, Python, and Java programming languages.
- Input Data: Read an integer
datarepresenting the data to be transmitted. - Initialize Array: Create an integer array
aof size 10 (for digits 0 to 9) and initialize all its elements to 0. This array will be used to count the occurrence of each digit. - Count Repeating Digits: Use a loop to iterate through each digit of the input
data. Inside the loop, perform the following:- Calculate the remainder
rwhendatais divided by 10 (this gives the current digit). - Increment the count of the digit in the array
aat the indexr. - Update
databy dividing it by 10, effectively removing the last digit.
- Calculate the remainder
- Count Unique Repeating Digits: Iterate through the array
a(for digits 0 to 9). For each element in the array, if its value is greater than 1, increment thecountvariable. This means the digit has repeated. - Output Security Key: Print the value of the
countvariable. This value represents the security key for the given data.
Test Cases
Test Case 1
Input:
12345
Expected Output:
0
Test Case 2
Input:
112233
Expected Output:
3
Test Case 3
Input:
111222333444
Expected Output:
4
Test Case 4
Input:
9876543210
Expected Output:
0
Test Case 5
Input:
112233445566
Expected Output:
6
Test Case 6
Input:
77777777
Expected Output:
1
Solution
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
int a[10] = {0};
int count = 0;
while (n > 0) {
int r = n % 10;
a[r]++;
n = n / 10;
}
for (int i = 0; i < 10; i++) {
if (a[i] > 1) {
count++;
}
}
printf("%d", count);
return 0;
}
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int a[10] = {0};
int count = 0;
while (n > 0) {
int r = n % 10;
a[r]++;
n = n / 10;
}
for (int i = 0; i < 10; i++) {
if (a[i] > 1) {
count++;
}
}
cout << count;
return 0;
}
n = int(input())
a = [0] * 10
count = 0
while n > 0:
r = n % 10
a[r] += 1
n = n // 10
for i in a:
if i > 1:
count += 1
print(count)
import java.util.Scanner;
public class SecurityKey {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a = new int[10];
int count = 0;
while (n > 0) {
int r = n % 10;
a[r]++;
n = n / 10;
}
for (int i = 0; i < 10; i++) {
if (a[i] > 1) {
count++;
}
}
System.out.println(count);
}
}
Happy Learning – If you require any further information, feel free to contact me.
![[Solved] A company is transmitting data to another server Security key [Solved] A company is transmitting data to another server Security key](https://realcoder.techss24.com/wp-content/uploads/2023/08/Solved-A-company-is-transmitting-data-to-another-server-Security-key.png)
![[Solved] Prim's algorithm with C](https://realcoder.techss24.com/wp-content/uploads/2022/07/Solved-Prims-algorithm-with-C-300x200.png)
![[Solved] Candy Game with Java, C++, Python](https://realcoder.techss24.com/wp-content/uploads/2022/07/Solved-Candy-Game-with-Java-C-Python-300x200.png)
