筛选法
来源:互联网 发布:php读取数据库并显示 编辑:程序博客网 时间:2024/05/03 15:17
利用筛选法求100以内的素数
- 2-10分别做因数
- 利用for循环求:数值%因数,看是否为0;如果为零,则该数一定不是一个素数,然后令其等于0;
- 循环输出数组中不是素数的元素
//筛选法找出100以内的素数#include <stdio.h>#include <math.h>void main(){ int arr[101]; int i,y,j,x,count=0; //赋值 for(i=1;i<101;i++){ arr[i]=i; } arr[1]=0; for(j=2;j<sqrt(100);j++){ for(x=j+1;x<=100;x++){ if(arr[j]!=0&&arr[x]!=0){ if(arr[x]%arr[j]==0) arr[x]=0; } } } for(y=1;y<=100;y++){ if(arr[y]!=0){ printf("%4d",arr[y]); count++; } if(count%10==0){ printf("\n"); } }}
附上普通求解素数的方式:
例:16的素数有1,2,4,8,16,
在进行循环比较16%i==0的时候呢,为节省时间,可以只比较到4;因为到4的时候,就可以判断出16不是一个素数,4是16的平方根。可以用sqrt()函数进行求解一个数的平方的根
int arr[101]; int i,k,j,x; //赋值 for(i=1;i<101;i++){ arr[i]=i; } //普通求素数的方式 for(x=2;x<=100;x++){ k=(int)sqrt(arr[x]); for(j=2;j<=k;j++){ if(arr[x]%j==0) break; } //如果循环完以后,arr[x]%j!=0,j一定大于k if(j>k){ printf("%d是%s\n",arr[x],"素数"); } else printf("%d不是%s\n",arr[x],"不是素数"); }
阅读全文
0 0
- 筛选法
- 筛选法
- 筛选法
- 筛选法
- 筛选法
- 筛选法
- 素数筛选——爱拉托逊斯筛选法
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- Eratoshenes素数筛选法
- 素数--超强筛选法
- 素数筛选法
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- linux 基础学习4
- Ubuntu安装tplink wn822n网卡驱动
- c语言(三)字符串、数组
- C#基础(5)——三元表达式
- Redis的服务端安装
- 筛选法
- java鬼混笔记:springboot 8、springboot发邮件mail
- 妖梦拼木棒(组合数学)
- Java练习--继承(6)
- Python数据类型转换
- 将本地代码托管到github
- Unity3D 大型游戏 最后一站 源码 部分重点 GameView-BaseWindow(16)
- String类
- 顺序查找