精华内容
下载资源
问答
  • 筛选法求100以内素数

    千次阅读 2015-06-06 22:39:42
    范围确定时,可以通过筛选法筛选出素数。 一个标记数组a[N],下标i为数,a[i]为0表示i不是素数,为1表示目前还没被筛选出来。...//筛选法求100以内素数 int main() { int i,j,a[N]; int sqrt_

    范围确定时,可以通过筛选法筛选出素数。

    一个标记数组a[N],下标i为数,a[i]为0表示i不是素数,为1表示目前还没被筛选出来。从2的倍数开始直到sqrt(N)的倍数,一一从素数中删除,留到最后的就是素数

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #define N 101
    //筛选法求100以内的素数
    int main()
    {
    	int i,j,a[N];
    	int sqrt_N=(int)sqrt((double)N);
    	for(i=2;i<N;i++)
    		a[i]=1;
    	for(i=2;i<=sqrt_N;i++)
    	{
    		for(j=i;i*j<N;j++)
    			if(a[i*j]==1)
    				a[i*j]=0;
    	}
    
    	for(i=1;i<N;i++)
    		if(a[i]==1)
    			printf("%d  ",i);
    
    	system("pause");
    
    	return 0;
    }

    j从i开始增加,2*3删除了之后不用再去删3*2的
    展开全文
  • MIPS汇编下用筛选法求100以内素数,有C语言对照,工具的话,用spim模拟器。
  • 题目:利用筛选法求100以内素数。 拓展:筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没...

    题目:利用筛选法求100以内的素数。

    拓展:

    筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。(另一种解释是当时的数写在纸草上,每要划去一个数,就把这个数挖去,寻求质数的工作完毕后,这许多小洞就像一个筛子。)

    ——百度百科

    思路:

    设置一个数组,数组下标表示数值,数组内存的数若为1表示其为质数,为0即不是质数,初始时将所有数值置为1,然后从2开始一直到数组结束(此题中为100),将其(质数)倍数置为0,输出时,遍历数组,凡是值为1的输出其下标即可。

    代码实现:

    /*
    筛选法求100以内的素数; 
    */ 
    #include<iostream>
    
    using namespace std;
    
    int main()
    {
    	int num[101],i,j;
    	//初始设置num数组值; 
    	for(i=1;i<=100;++i) {
    		num[i]=1;
    	}
    	//凡是num数组值为1的,且是i的倍数的位置,全都置为0,表示不是质数; 
    	for(i=2;i<=100;++i) {
    		if(num[i]==1){	
    			//此处的j表示的是i的倍数,由于100以内,所以i*j也得在100以内; 
    			for(j=2;i*j<100;++j){
    				num[i*j]=0;
    			}
    		}
    	}
    	//输出num数组中数组值为1 的数即可; 
    	for(i=2;i<=100;i++){
    		if (num[i]==1){
    			printf("%d,",i);
    		}
    	
    	}
    	return 0;
     } 

     

    展开全文
  • 筛选法求100以内素数

    千次阅读 2019-01-19 18:23:18
    筛选法求100以内素数 所谓筛选法是指埃拉托色尼筛选。埃拉托色尼是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到1000的全部整数,然后逐个判断他们是否素数,找出一个非素数,就把他们挖掉,最后剩下...

    用筛选法求100以内的素数

    所谓筛选法是指埃拉托色尼筛选。埃拉托色尼是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到1000的全部整数,然后逐个判断他们是否素数,找出一个非素数,就把他们挖掉,最后剩下的就是素数。
    用算法可以表示如下:
    (1)先将1挖去。
    (2)用2去除他后面的各个数,把能被2整出的数挖掉,即把2的倍数挖掉。
    (3)n=3,4,…,100/2,重复2步骤直到所求数的一半即可。(若简化,可求到所求数的平方根即可)
    (4)剩下的即是素数。

    代码如下:

    #include<stdio.h>
    int main()
    {
    	int a[100],j;                                                  
    	for(j=1;j<=100;j++)
    	a[j]=j;
    	for(int i=2;i<=100/2;i++)
    	for(j=2;j<=100;j++){
    		if(j%i==0&&a[j]!=0&&j!=i)//判断是否为质数,满足不为质数,删去 
    		a[j]=0;
    	}
    	printf("100以内的素数为:\n");
    	for(j=2;j<=100;j++)
    	if(a[j]!=0)
    	printf("%d ",a[j]);
     } 
    

    在这里插入图片描述

    展开全文
  • #筛选法求100素数#

    2020-10-30 22:17:05
    筛选法求100以内素数 #include<stdio.h> int main() { int i,j,a[99]; for(i=0;i<99;i++) { a[i]=i+2; } for(i=0;i<99;i++) { if(a[i]!=0){ for(j=i+1;j<99;j++) if(a[j]%a[i]==0) a...

    筛选法求100以内素数

    #include<stdio.h>
    int main()
    {
    	int i,j,a[99];
    	for(i=0;i<99;i++)
    	{
    		a[i]=i+2;
    	}
    	for(i=0;i<99;i++)
    	{
    		if(a[i]!=0){
    		for(j=i+1;j<99;j++)
    		if(a[j]%a[i]==0)
    		a[j]=0;}
    	}
    	for(i=0;i<99;i++)
    		if(a[i]!=0)
    		printf("%d ",a[i]);
    	return 0;
    }
    
    展开全文
  • 【C语言】 利用筛选法求100以内素数

    万次阅读 多人点赞 2018-10-27 09:41:29
    //C语言 筛选法求100以内素数 //原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质 //数的倍数筛掉。 //我们将从2开始 用2除后面的数...
  • //题目:用筛选法求100以内素数 #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { int i,j,k,num[101]; for(i=1;i&lt;=100;i++) num[i]=i; for(i=1;i&lt;=...
  • 筛选法求100以内素数,要求使用数组。 #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a[100],i,b[100],j,n=0; //数组a[100]来...
  • int main() { int i,j,n,a[101];//为了使数和下标一一对应 ...=100;i++) { a[i]=i; a[1]=0; } for(i=2;i<sqrt(1.0*100);i++) { for(j=i+1;j<=100;j++) { if(a[i]!=0 && a[j]!=0)...
  • 筛选法求100以内的的素数 1.算法介绍 筛选法是指埃拉托色尼(Eratosthenes)筛选,埃拉托色尼是古希腊的著名数学家。他采取的方法是,先写下1到1000的全部整数,然后逐个判断它们是否素数,找出一个非素数,就把...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 126
精华内容 50
关键字:

筛选法求100以内素数