2 gy4518 gy4518 于 2013.11.25 13:36 提问

随机生成10个100位素数

最近在学RSA的东西,这道题难住了我。跪求一份源代码。谢谢了。
C/C++等等都可以。

2个回答

wuli9999
wuli9999   2013.11.25 15:15
已采纳


#include
#include
#include

#define RANGE 100
int IsPrime(int i);

void main()
{
int iPrime = 0;

while(1)
{

srand((unsigned)time(NULL));
iPrime = rand()%RANGE; //得到随机数
if(IsPrime(iPrime)) //判断是否为素数,若为素数,则退出循环,否则继续取随机数
break;
}
printf("%d",iPrime);
}

int IsPrime(int iPrime)
{
int i = 0;

if(iPrime < 2)
{
return 0;
}
else
{
for(i=2;i<sqrt(iPrime);i++)
{
if(iPrime%i == 0) //只要从2到sqrt(iPrime)中有一个数可以被iPrime整除,则iPrime非素数
return 0;
}

}
return 1;
}

wuli9999
wuli9999 你可以参考这个思路
4 年多之前 回复
neida434
neida434 100的随机数再加几位不就是了么。。。
4 年多之前 回复
u012889435
u012889435 这个貌似取的是100以内的随机数吧.........
4 年多之前 回复
gy4518
gy4518 咱能对自己的答案负点责么 不要随便复制一个就贴上行吗
4 年多之前 回复
guomingbing12
guomingbing12   2013.11.26 19:47

哥们 你的要求太大了吧 100位的素数? 做这么大的运算很麻烦的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
产生一个随机数组,并判断哪些数是素数
//判断随机整数是否是素数 //产生100个0-999之间的随机整数, //然后判断这100个随机整数哪些是素数,哪些不是? //并把素数和合数分别放到数组中public class PrimeNumber { public static void main(String[] args) { int[] array=new int[100]; //100个随机数
生成10个100以内的随机数
-
JAVA - 随机产生100个字符串,统计重复的字符串*****
//产生100个随机字符串,比较字符串,统计这个字符串数组里重复的字符串有多少种.两种方法1.使用for,在判断是否已存在重复的,则不再进行这个字符串的比较。2.使用HashSet的不可重复性方法1:package 数字与字符串; //产生100个随机字符串,比较字符串,统计这个字符串数组里重复的字符串有多少种. public class TestString3 { static int sum...
选择排序法 排列10个随机产生的10~100之间的数
Dim a(1 To 10) As Integer Private Sub Command1_Click()   Form_Load End Sub Private Sub Command2_Click() p = "" For i = 1 To 9    For j = i + 1 To 10     If a(i)      t = a(i): a(i) = a(j
用vb程序输出10个随机数
代码: Private Sub Command1_Click() Dim i As Integer, t As Integer Dim k As Integer Dim a(10) As Integer Dim mystr As String Dim youstr As String    a(1) = Int(Rnd * 100 + 1)   mystr = "要"
随机生成大素数
RSA算法中随机生成大素数的代码,仅供学习用。
自写随机生成十个随机数,使他们总和为100的小程序
#include using namespace std; int main() { int x,temp,arr[10],sum=0; temp=100; for(int i=0;i<10;i++) { srand(i); x=rand()%temp; temp-=x; arr[i]=x; } arr[9]=temp; for(i=0;i<10;i++) cout<<a
java实现快速生成大素数,并用Miller-Rabin算法检验
Miller-Rabin算法生成大素数: 选取素数的步骤如下: 1>随机选择一个奇数n(可以用伪随机数生成) 2>对n进行一次素性检验,如果n没通检验则跳转到步骤1 3>重复步骤2足够多如果n通过检验,则认为n是素数 Miller-Rabin算法: n是一个大于3的奇数,将n-1写成2^k * m 的形式,其中m是素数; { 在{2,……,n-1}中随机的选取一个整数a; 令:b
随机产生一个数并判定是否为素数
import java.util.Random; public class train3_7 { public static void main(String[] args) { Random random=new Random(); float x=random.nextFloat();//生成0-1之间的随机实数 int i,y,j; y=Math.round(98*x+2);
随机生成一个n bit位的长质数
2.3:随机生成一个n bit位的长质数。函数前面如下     long createRndPrime(int n)     输入:随机质数的bit位长度为n     输出:nbit位长度的质数 发现问题:当位数增到40以上后,产生结果的时间明显增大。说明在判断大数是质数时用了比较久的时间 package second.suanfa.whp; import java.i