<endl;Р?for(i=0;i<len;i++)Р m2[i]=multiplication(m2[i],d,n);Р?cout<<"解密后的明文为:";Р?for(i=0;i<len;i++)Р cout<<m2[i]<<" ";Р?cout<<endl;Р}Рvoid main()Р{Р?cout<<"输入两个素数p和q:\n"; Р?while(1)Р?{Р cin>>p; Р if(prime(p))Р {Р cout<<p<<"是素数"<<endl;Р break;Р }Р?elseР?{Р cout<<p<<"不是素数"<<endl;Р?continue;Р?}Р?}Рwhile(1)Р?{Р cin>>q; Р if(prime(q))Р {Р cout<<q<<"是素数"<<endl;Р break;Р }Р?elseР?{Р cout<<q<<"不是素数"<<endl;Р?continue;Р?}Р?}Рcout<<"两个素数为:"<<p<<","<<q<<endl;Р?n=p*q;Р?N=(p-1)*(q-1);Р for(int i=2;i<N;i++) Р?{ Р if(N%i==0) Р {Р cout<<i<<" "; Р } Р Р?}Р cout<<endl;Р?cout<<"请输入一个随机数,该数不等于上面的任何一个数!"<<endl; Р?cin>>e; Р?cout<<"公钥为<"<<e<<","<<n<<">"<<endl;Р if(ExtendedEuclid(e,N,&d))Р?cout<<e<<"的乘法逆元是:"<<d<<endl;Р cout<<"私钥为<"<<d<<","<<n<<">"<<endl;Р cout<<"请输入明文长度: ";Р?cin>>len;Р Encryption();Р Decipher();Р}