您的位置:首页 > 其它

素数(2)

2020-02-02 19:46 302 查看

素数

随着对数学的学习,感觉素数是最伟大的数,先在这里将介绍一些最最最简单的素数算法。在后面会补充唯一分解定理(作用是把任何一个数分解成一堆素数的乘积),在这里先不做简绍。

先来俩个板子(作用是判断一个数是否是素数):

int sushu(int n)
{
int num,i,flag = 0;
num = sqrt(n);
for(i=2;i<=num;i++)
{
if(n%i==0)
{
flag = 1;
break;
}

}
return flag;
}

下面这个板子好用点,稍微复杂的题一般得用下面这个板子。

//prim[]初始化为0   0代表素数,1代表合数
prim[0]=prim[1]=1;
for(int i=2;i*i<TOP;i++)
if(!prim[i])
for(int j=i*i;j<TOP;j+=i)
prim[j]=1;

再来一个板子题:
HDU - 2012 素数判定

#include <stdio.h>
#include <math.h>
int sushu(int n)
{
int num,i,flag = 0;
num = sqrt(n);
for(i=2;i<=num;i++)
{
if(n%i==0)
{
flag = 1;
break;
}
}
return flag;
}

int main()
{
int x,y,flag=0;
while(scanf("%d%d",&x,&y)!=EOF&&(x!=0||y!=0))
{
flag=0;
for(x;x<=y;x++)
{
if(sushu(x*x+x+41)==1)
{
flag=1;
break;
}
}
if(flag==1)
printf("Sorry\n");
else
printf("OK\n");
}
}

相关题目:
HDU - 2098 分拆素数和
HDU - 4548 美素数

  • 点赞
  • 收藏
  • 分享
  • 文章举报
〆℡小短腿走快点ゝ 发布了30 篇原创文章 · 获赞 1 · 访问量 1426 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: