Related Articles
Convert all lowercase characters to uppercase whose ASCII value is co-prime with k
• Difficulty Level : Medium
• Last Updated : 31 Jan, 2019

Given an integer ‘k’ and a string ‘str’ consisting of characters from English alphabets. The task is to convert all lower case character to uppercase whose ASCII value is co-prime with k.

Examples:

Input: str = “geeksforgeeks”, k = 4
Output: GEEKSfOrGEEKS
‘f’ and ‘r’ are the only characters whose ASCII values aren’t co-prime with 4.

Input: str = “Ac”, k = 2
Output: AC
The only lower case character is ‘c’ and ASCII value of ‘c’ is 99 which is co-prime with 2.

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

Approach:

• Iterate over all characters in the given string to check whether the current character is lowercase and if it’s ASCII value is co-prime with ‘k’
• To check for co-prime, check that if the gcd of the value with k is ‘1’ or not.
• If the above condition is satisfied then convert that lowercase alphabet to uppercase alphabet.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// function to modify the string ` `void` `convert_str(string s, ``int` `k) ` `{ ` `    ``// length of the string ` `    ``int` `l = s.length(); ` ` `  `    ``for` `(``int` `i = 0; i < l; i++) { ` `        ``int` `ascii = (``int``)s[i]; ` ` `  `        ``// check if the character is ` `        ``// lowercase and co-prime with k ` `        ``if` `(ascii >= ``'a'` `&& ascii <= ``'z'` `            ``&& __gcd(ascii, k) == 1) { ` ` `  `            ``// change the character ` `            ``// to upper-case ` `            ``char` `c = s[i] - 32; ` `            ``s[i] = c; ` `        ``} ` `    ``} ` ` `  `    ``cout << s << ``"\n"``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``string s = ``"geeksforgeeks"``; ` `    ``int` `k = 4; ` ` `  `    ``convert_str(s, k); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach ` `class` `GFG  ` `{ ` ` `  `// function to modify the string ` `    ``static` `void` `convert_str(String str, ``int` `k) ` `    ``{ ` `        ``// length of the string ` `        ``char``[] s = str.toCharArray(); ` `        ``int` `l = s.length; ` ` `  `        ``for` `(``int` `i = ``0``; i < l; i++)  ` `        ``{ ` `            ``int` `ascii = (``int``) s[i]; ` ` `  `            ``// check if the character is ` `            ``// lowercase and co-prime with k ` `            ``if` `(ascii >= ``'a'` `&& ascii <= ``'z'`  `                    ``&& __gcd(ascii, k) == ``1``) ` `            ``{ ` ` `  `                ``// change the character ` `                ``// to upper-case ` `                ``char` `c = (``char``) (s[i] - ``32``); ` `                ``s[i] = c; ` `            ``} ` `        ``} ` `        ``System.out.println(String.valueOf(s)); ` `    ``} ` ` `  `    ``static` `int` `__gcd(``int` `a, ``int` `b)  ` `    ``{ ` `        ``// Everything divides 0  ` `        ``if` `(a == ``0``)   ` `        ``{ ` `            ``return` `b; ` `        ``} ` `        ``if` `(b == ``0``)  ` `        ``{ ` `            ``return` `a; ` `        ``} ` ` `  `        ``// base case  ` `        ``if` `(a == b)  ` `        ``{ ` `            ``return` `a; ` `        ``} ` ` `  `        ``// a is greater  ` `        ``if` `(a > b)  ` `        ``{ ` `            ``return` `__gcd(a - b, b); ` `        ``} ` `        ``return` `__gcd(a, b - a); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``String s = ``"geeksforgeeks"``; ` `        ``int` `k = ``4``; ` `        ``convert_str(s, k); ` `    ``} ` `}  ` ` `  `// This code is contributed by 29AjayKumar `

## Python3

 `# Python3 implementation of the approach  ` `from` `math ``import` `gcd ` ` `  `# function to modify the string  ` `def` `convert_str(s, k):  ` `     `  `    ``modified_string ``=` `"" ` `    ``for` `i ``in` `range``(``0``, ``len``(s)):  ` `        ``ascii ``=` `ord``(s[i])  ` ` `  `        ``# check if the character is  ` `        ``# lowercase and co-prime with k  ` `        ``if` `(ascii >``=` `ord``(``'a'``) ``and` `            ``ascii <``=` `ord``(``'z'``) ``and` `            ``gcd(ascii, k) ``=``=` `1``):  ` ` `  `            ``# change the character to upper-case  ` `            ``modified_string ``+``=` `chr``(ascii ``-` `32``) ` `             `  `        ``else``: ` `            ``modified_string ``+``=` `s[i] ` ` `  `    ``print``(modified_string)  ` ` `  `# Driver code  ` `if` `__name__ ``=``=` `"__main__"``: ` ` `  `    ``s ``=` `"geeksforgeeks"` `    ``k ``=` `4` ` `  `    ``convert_str(s, k)  ` ` `  `# This code is contributed by Rituraj Jain `

## C#

 `// C# implementation of the approach ` `using` `System; ` ` `  `class` `GFG  ` `{ ` ` `  `    ``// function to modify the string ` `    ``static` `void` `convert_str(String str, ``int` `k) ` `    ``{ ` `     `  `        ``// length of the string ` `        ``char``[] s = str.ToCharArray(); ` `        ``int` `l = s.Length; ` ` `  `        ``for` `(``int` `i = 0; i < l; i++)  ` `        ``{ ` `            ``int` `ascii = (``int``) s[i]; ` ` `  `            ``// check if the character is ` `            ``// lowercase and co-prime with k ` `            ``if` `(ascii >= ``'a'` `&& ascii <= ``'z'` `                    ``&& __gcd(ascii, k) == 1) ` `            ``{ ` ` `  `                ``// change the character ` `                ``// to upper-case ` `                ``char` `c = (``char``) (s[i] - 32); ` `                ``s[i] = c; ` `            ``} ` `        ``} ` `        ``Console.WriteLine(String.Join(``""``, s)); ` `    ``} ` ` `  `    ``static` `int` `__gcd(``int` `a, ``int` `b)  ` `    ``{ ` `        ``// Everything divides 0  ` `        ``if` `(a == 0)  ` `        ``{ ` `            ``return` `b; ` `        ``} ` `        ``if` `(b == 0)  ` `        ``{ ` `            ``return` `a; ` `        ``} ` ` `  `        ``// base case  ` `        ``if` `(a == b)  ` `        ``{ ` `            ``return` `a; ` `        ``} ` ` `  `        ``// a is greater  ` `        ``if` `(a > b)  ` `        ``{ ` `            ``return` `__gcd(a - b, b); ` `        ``} ` `        ``return` `__gcd(a, b - a); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main()  ` `    ``{ ` `        ``String s = ``"geeksforgeeks"``; ` `        ``int` `k = 4; ` `        ``convert_str(s, k); ` `    ``} ` `} ` ` `  `// This code is contributed by PrinciRaj1992 `

## PHP

 `= ord(``'a'``) &&  ` `            ``\$ascii` `<= ord(``'z'``) &&  ` `            ``__gcd(``\$ascii``, ``\$k``) == 1) ` `        ``{ ` ` `  `            ``// change the character to upper-case ` `            ``\$modified_string` `= ``\$modified_string``.``chr``(``\$ascii` `- 32); ` `        ``} ` `        ``else` `        ``{ ` `            ``\$modified_string` `= ``\$modified_string``.``\$str``[``\$i``]; ` `        ``} ` `    ``} ` `    ``echo` `(``\$modified_string``); ` `} ` ` `  `function` `__gcd(``\$a``, ``\$b``)  ` `{ ` `    ``// Everything divides 0  ` `    ``if` `(``\$a` `== 0)  ` `    ``{ ` `        ``return` `\$b``; ` `    ``} ` `    ``if` `(``\$b` `== 0)  ` `    ``{ ` `        ``return` `\$a``; ` `    ``} ` ` `  `    ``// base case  ` `    ``if` `(``\$a` `== ``\$b``)  ` `    ``{ ` `        ``return` `\$a``; ` `    ``} ` ` `  `    ``// a is greater  ` `    ``if` `(``\$a` `> ``\$b``)  ` `    ``{ ` `        ``return` `__gcd(``\$a` `- ``\$b``, ``\$b``); ` `    ``} ` `    ``return` `__gcd(``\$a``, ``\$b` `- ``\$a``); ` `} ` ` `  `// Driver code ` `\$s` `= ``"geeksforgeeks"``; ` `\$k` `= 4; ` `convert_str(``\$s``, ``\$k``); ` ` `  `// This code is contributed by ita_c  ` `?> `

Output:

```GEEKSfOrGEEKS
```

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :