素数(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 美素数
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 第k互素数
- 最大素数因子(hdu2136)
- 《算法导论》学习笔记——如何证明有无穷多个素数
- 快速查找素数
- 华为oj_查找组成一个偶数最接近的两个素数
- 14 求n以内最大的k个素数以及它们的和
- 素数
- 打印100---200之间的素数
- 蓝桥杯校园选拔之循环素数
- Elementary methods in number theory exercise 1.5.1 暨 重启C++之路:列出1到210的所有素数
- 判断100-200之间的素数
- 调用函数判断素数问题,判断某个区间的素数。
- 几种素数判定方法
- POJ 2262 Goldbach's Conjecture(素数表分解质数)
- ZOJ - 3980 17171771 大素数判定
- 将一个偶数分解为两个素数的和并打印
- 自测-2 素数对猜想
- POJ2739 Sum of Consecutive Prime Numbers【素数筛选+尺取法】
- 输出10000以内的所有回文素数
- 打印素数