素数判断的初步理解
来源:互联网 发布:淘宝美工是干嘛的 编辑:程序博客网 时间:2024/06/05 18:23
1.#include<stdio.h>int main(){ int i,n; scanf("%d",&n); for(i=2;i<n;i++)//作判断时实际上只需要比较到根号下n次方 if(n%i==0)break; if(i<n||n==1)puts("No"); else puts("Yes");}2.#include<stdio.h>int n,i,j,a[1000001],p[100000],t=0;int main(){ scanf("%d",&n); a[1]=0;//这步可以省略,没必要 for(i=2;i<=n;i++)a[i]=1;//相当于作一个标记,到最后是一的就可以输出一个素数 for(i=2;i<=n;i++) if(a[i]){ p[t++]=i;//若这个数十第一个素数 for(j=i+i;j<=n;j+=i)//则j=2*i....j=n*i一定不是素数,即把a[j]置为0; a[j]=0; } for(i=0;i<t;i++) printf("%d%c",p[i],i<t-1?' ':'\n');}只能输出N以内的所有素数,不能对素数进行单个输出。3.#include<stdio.h>#include<math.h>int p[1000000],a[10000001],t=0;int prime(int n){ int i,q; q=(int)sqrt(n);//比较到平方根 for(i=0;p[i]<=q&&t;i++) if(n%p[i]==0)//在这里它只对质数进行了取模运算,定理:若正整数a>1,且a不能被不超过a的平方根return 0;//的任一素数整除,则a是素数 return 1;}int main(){ int n,i; scanf("%d",&n); for(i=2;i<=n;i++) if(prime(i))p[t++]=i; for(i=0;i<t;i++) printf("%d%c",p[i],i<t-1?' ':'\n'); return 0;}
阅读全文
0 0
- 素数判断的初步理解
- 素数的判断及初步优化
- 判断素数的算法
- 判断素数的算法
- 判断素数的算法
- 判断素数的函数
- 判断素数的算法
- 素数的判断
- 素数的判断
- 素数的判断
- 关于素数的判断
- 素数的判断
- 素数的判断
- 判断素数的方法
- 判断素数的函数
- 素数的判断
- 素数的判断
- 判断素数的算法
- 2017.7.23 学习日记
- mysql+qt,1064错误
- maven 手动安装本地jar包
- 开门人和关门人
- const 的使用
- 素数判断的初步理解
- 一个轻量级分布式RPC框架--NettyRpc
- #bzoj2237#龙珠雷达(Dp + 单调队列优化)
- 3.3总结
- 测试系列-Charles抓包和Mock数据的方法
- 【华为机试】提取不重复的整数
- 2017.7.17-2017.7.23暑期集训阶段性总结
- 【HDU
- tensorflow生成随机数的操作 tf.random_normal & tf.random_uniform & tf.truncated_normal & tf.random_shuffle