# HackerRank Encryption problem solution

In this HackerRank Encryption problem, An English text needs to be encrypted using the following encryption scheme. First, the spaces are removed from the text. Let L be the length of this text. then, characters are written into a grid.

## Problem solution in Python programming.

```s = input()
n = 1
while n * n < len(s):
n += 1

a = s + ' ' * (n * n - len(s))
a = [a[i:i+n] for i in range(0, n * n, n)]

print(' '.join([''.join([a[j][i] for j in range(n)]).strip() for i in range(n)]))```

## Problem solution in Java Programming.

```import java.io.*;
import java.util.*;

public class Solution {

public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner sc = new Scanner(System.in);
String input = sc.next();
int size = input.length();
int rowSize = (int)Math.floor(Math.sqrt(size));
int colSize = (int)Math.ceil(Math.sqrt(size));

while(colSize>rowSize){
colSize--;
if((colSize*rowSize)<size){
colSize++;
break;
}
}
while((colSize*rowSize)<size&&(colSize>rowSize)){
rowSize++;
}

for(int i =0;i<colSize;i++){

int row = 0;
while(row<=rowSize-1){
if((i+row*colSize)<size)
{
System.out.print(input.charAt(i+row*colSize));
row++;
}     else{
break;
}

}
System.out.print(" ");
}
}
}```

### Problem solution in C++ programming.

```using namespace std;
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <fstream>
#include <cassert>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <set>

# define PI 3.14159265

int main()
{
char msg[90];
int row,col,i,j;
scanf("%s",msg);
int len=strlen(msg);
row=(int)sqrt(len);
if((row*row)==len) col=row;
else if(len<=(row*(row+1))) col=row+1;
else
{
row=row+1;col=row;
}
for(i=0;i<col;i++)
{
for(j=i;j<len;j=j+col)
printf("%c",msg[j]);
printf(" ");
}
printf("\n");
system("pause");
return 0;
}```

### Problem solution in C programming.

```#include <stdio.h>
#include <string.h>
#include <math.h>

#define MAX_SIZE    82
#define MAX_ARRAY   10

char Input[MAX_SIZE];
char Output[MAX_ARRAY][MAX_ARRAY];

int main()
{
int i, j, k;
int Len;
//int Width;
int Height;
//double Result;

scanf("%s\n", Input);
//printf("%s\n", Input);

Len = strlen(Input);
//printf("%d\n", Len);

//Result = sqrt(Len);

//Width = floor(Result);
Height = ceil(sqrt(Len));

//printf("%d %d\n", Width, Height);

k = 0;
for(i = 0; k < Len; ++i)
{
for(j = 0; ((j < Height) && (k < Len)); ++j, ++k)
{
Output[j][i] = Input[k];
}
}

for(i = 0; i < (Height - 1); ++i)
{
printf("%s ", Output[i]);
}
printf("%s\n", Output[i]);
}```

### Problem solution in JavaScript programming.

```function processData(input) {
var chars = input.split(''),
w = Math.ceil(Math.sqrt(chars.length)),
h = Math.ceil(Math.sqrt(chars.length)),
result = [];

for (var i = 0; i < h; i++) {
var j = i, str = '';
while (j < chars.length) {
str += chars[j];
j += w;
}
result.push(str);
}

console.log(result.join(' '));
}

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
_input += input;
});

process.stdin.on("end", function () {
processData(_input);
});```