Witam, wiem wiem kod jest na poziomie troglodyty, niestety nie jestem programista i nie mam zamiaru byc. Moj problem jest nastepujacy Musze napisac algorytm RSA i juz na poczatku (chodzi tylko o sprawdzenie czy algorytm szyfrujacy bedzie dzialal prawidlowo) mam problem. Mianowicie, nie wiem z jakich powodów zmienna d zawsze otrzymuje wartosć 0 wyglada to tak jakby wylosowana liczba byla kasowana po wyliczeniu e. Dlaczego tak sie dzieje?
Prosze tylko bez uszczypliwych komentarzy typu ale to jest proste ale to banalne. spedzilem juz nad tym troche czasu i nie mogac znaleŹĆ rozwiazania udalem sie tutaj. Licze na Wasza pomoc. Pozdrawiam
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
int p;
int q;
int n;
int phi;
int e;
float d;
srand ( time(NULL) );
cout << "podaj liczbe pierwsza"<< endl<<endl;
cin >>p;
cout <<"podaj kolejna liczbe pierwsza"<< endl<< endl;
cin >>q;
n=p*q;
phi=(p-1)*(q-1);
int a=(rand()%phi)+1;
e=a^phi%n;
d=(1/e)%phi;
cout<<"To jest klucz publiczny:"<<n<<","<<e<<endl<<endl;
cout<<"To jest klucz prywatny: "<<n<<","<<d<<endl<<endl;
system("pause");
return 0;
}