蒙特卡罗行概率算法 素数测试问题算法中为什么是在每做一次乘法之后对n

发布网友 发布时间:2022-04-24 13:31

我来回答

1个回答

热心网友 时间:2023-10-14 13:01

先来一种比较快速的素数筛选法,这是一种非常高效的筛法,原理的话,你得看下数论方面的书籍#include<stdio.h>
#include<string.h>
#define MAXN 100int flag[MAXN+1];int main()
{
int i,j;
memset(flag,0,sizeof(flag));
for(i=2;i<=MAXN;i++)
{
if(!flag[i])
for(j=i*i;j<=MAXN;j=j+i)
if(!flag[j])
flag[j]=1;
}
for(i=2;i<=MAXN;i++)
if(!flag[i])
printf("%d ",i);
printf("\n");
return 0;
}下面的用的是最普通的算法#include<stdio.h>
#include<math.h>
#define MAXN 100int main()
{
int i,j;
for(i=2;i<=MAXN;i++)
{
if(i==2||i==3||i==5)
printf("%d ",i);
else
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j==i)
printf("%d ",i);
}
}
printf("\n");
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com