0

私は楽しみのために RSA を実装しようとしていますが、n と素数 (pxq、p と q は 2 つの大きな素数) を見つける必要がある部分に行き詰まっています。

これを行う方法はありますか?必要のない数の余素の数以外は何も見つからないようです。

4

3 に答える 3

3

一様にサンプリングされた任意の 2 つの整数が互いに素である確率は~60%です。

目的の範囲内でランダムな整数を選択し、その GCD を元の数値でテストし、それらが互いに素でない場合はループ (再サンプリング) することができます。

于 2013-07-31T11:46:36.107 に答える
0
#include <stdio.h>  
 int gcd(int a,int b)  
{  
  int temp;  
  while(b!=0)  
  {  
       temp=a;  
       a=b;  
       b=temp%b;  
  }  
  return a;  
   }  
   int main()  
    {  
  int n,i,d,count;  
  count=1;  
  scanf("%d",&n);  
  for(i=2;i<n;i++)  
  {  
       d=gcd(n,i);  
       if(d==1)  
            count+=1;  
  }  
  printf("%d\n",count);  
  return 0;  
        } 
于 2015-07-20T05:32:41.413 に答える