运行后先显示exe运行错误 感觉没错啊,分开就能运行为什么一起运行不了?
#include<stdio.h>#include<stdlib.h>
#include <time.h>
#include<string.h>
int main()
{
int i,k,x,j=0,a=0,b,p,q,n,m,c=0,z=0,g,f,e,h,d;
printf("请输入您想要随机生成0-?中的任意两素数p,q:");
int str1[500],str2[2],str3[500],str4[2];
scanf("%d",&x); //输入 n 范围上限
for(i=2;i<=x;i++) //外循环 从2到n 查找
{
for(k=2;k<=i;k++) //内循环 将i除以 2到 i的所有值
if(i%k==0) //i能整除 其中一个数就不是素数 跳出内循环
break;
if(k>=i)
{
str1[j]=i;
j++;
a++;
} //k>=i如果成立 说明前面循环结束时应为 k<=i不满足 或 k=i是break //跳出循环 这两种情况都说明 2到i所有的数都不能被i整除 (除了自身)
//满足就输出这个素数
}
printf(" 0-%d中随机产生的素数p,q为:\n",x);
srand((unsigned)time(NULL));
for(i=0; i<2; i++)
{
str2[i]=rand()%a;
printf("%d\n",str1[str2[i]]);
}
p=str3[str2[0]];
q=str3[str2[1]];
n=p*q;
m=(p-1)*(q-1);
for(g=2;g<=m;g++)
{
for(f=2;f<=g;f++)
if(g%f==0)
break;
if(f>=g)
{
str3[c]=g;
c++;
z++;
}
}
printf(" e为:");
srand((unsigned)time(NULL));
h=rand()%z;
e=str3[h];
printf("%d \n",e);
d = 1;
while((e*d)%m!=1) d++;
printf("d为%d",d);
getchar();
}