You are on page 1of 3

```/******************************************************************************

IONUT-99

*******************************************************************************/

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
int r1=1, r2=1, r3=1, r_min=1, r_max=40, i, n=1000, j, n2;

// BUN VEMIT LA IONUT-99

//PIN format din minim 6 caractere.

//Mesajul de intrare poate contine exclusiv literele alfabetului englez, cifre


0-9, spatii, ".", "?" si "!".

//Mesajul de iesire va fi afisat sub forma <mesaj de iesire>.

//Mare atentie, probabilitatea de a portivi litera este 99%, deci programul nu


este perfect.

string s="abcdefghijklmnopqrstuvwxyz1234567890 .?!


abcdefghijklmnopqrstuvwxyz1234567890 .?!abcdefghijklmnopqrstuvwxyz1234567890 .?!";
string litera;
int suma, modd, poz, pin=0;

cout<<endl<<"Mesaj: ";
getline(cin, litera);

//////////////

string r1s, r2s, r3s, parola, pins="0";

cout<<endl<<"PIN: "; cin>>parola;

n2=parola.length();

while (n2<6)
{
cout<<endl<<"PIN prea scurt (minim 6 cifre). PIN: "; cin>>parola;

n2=parola.length();
}

if (n2>6)
{
for (j=6; j<=n2-1; j++)
{
pins=parola[j];

if (pins=="0")
{
pin+=11;
}

else
{
pin+=stoi(pins);
}

}
}

//cout<<pin<<endl;

r3s=parola[0]; r3s+=parola[1]; //cout<<r3s<<endl;


r2s=parola[2]; r2s+=parola[3]; //cout<<r2s<<endl;
r1s=parola[4]; r1s+=parola[5]; //cout<<r1s<<endl;

r3=stoi(r3s); //cout<<r3<<endl;
r2=stoi(r2s); //cout<<r2<<endl;
r1=stoi(r1s); //cout<<r1<<endl;

//////////////////

cout<<endl<<"Mesaj: '";

n=litera.length();

if (r3<r_min || r3>r_max) r3=r_min; int r3i=r3; //cout<<r3<<endl;


if (r2<r_min || r2>r_max) r2=r_min; int r2i=r2; //cout<<r2<<endl;
if (r1<r_min || r1>r_max) r1=r_min; int r1i=r1; //cout<<r1<<endl;

for (i=0; i<=n-1; i++)


{
suma=(r1*r2*r3)+(300*r2)+(r3*r3*10)+
(r1*1000)+r1*r2+r2*r3+r3*r1*2+r1+r2%5+r2*r2*r2-r2*r2+pin;

modd=suma%80;

if (modd==0)
{
modd=80;
}

if (modd<40)
{
modd+=40;
}

poz=s.find(litera[i]);

cout<<s[modd-poz];

//rotor++
r1++;

if (r1>r_max)
{
r1=r_min;
r2++;
}

if (r2>r_max)
{
r2=r_min;
r3++;
}

if (r3>r_max)
{
r3=r_min;
}

cout<<"'";

cout<<endl<<endl<<"Pozitia: "<<r3i<<"/"<<r2i<<"/"<<r1i<<" -
"<<r3<<"/"<<r2<<"/"<<r1<<endl;
}

```

You might also like