精华内容
下载资源
问答
  • 用筛选法求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以内的素数 #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;=...
    //C程序设计第四版(谭浩强)
    //章节:第六章 利用数组处理批量数据 
    //题号:6.1 
    //题目:用筛选法求100以内的素数
    #include <stdio.h>
    #include <math.h>
    int main()
    {
    	int i,j,k,num[101];
    	for(i=1;i<=100;i++)
    		num[i]=i;
    	for(i=1;i<=100;i++)
    	{
    		k=sqrt(i);
    		for(j=2;j<=k;j++)
    			if(num[i]%j==0)
    				num[i]=0;	//筛选法:将合数筛去,置为0 
    	}
    	for(i=2;i<=100;i++)		//1不是素数也不是合数,从2开始 
    		if(num[i])
    			printf("%d ",num[i]);
    	return 0;
     } 
    
    展开全文
  • 用筛选法求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]来...

    用筛选法求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]来放用于推断的数,数组b[100]来放素数
    for(i=0;i<100;i++)       //注意这里i不能从1開始,由于数组a的首位是a[0]      
    {
    a[i]=i+1;         //令a[100]中的数是从1到100的
    }
    for(i=2;i<=100;i++)      //0和1不用推断
    {
    for(j=2;j<i;j++)
    {
    if(i%j==0)
    {
    break;       //假设i能整除从2到i-1之间随意一个数,那么i就不是素数。跳出循环
    }
    if(j==i-1)     //假设上述条件一直不成立,那么循环结束后j=i-1。此时i是素数
    {
    b[n]=i;    
    n++;       //将i按顺序放到数组b[100]里
    }
    }
    }


    for(i=0;i<n;i++)
    {
    cout<<b[i]<<endl;    //依次输出数组b里存放的数
    }
    return 0;
    }

    转载于:https://www.cnblogs.com/jzssuanfa/p/7105784.html

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

    千次阅读 2012-12-05 09:41:43
    用筛选法求100以内的素数 所谓“筛选法”指的是“埃拉托色尼(Eratosthenes)筛法”。他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它...
    /*
    用筛选法求100以内的素数
    所谓“筛选法”指的是“埃拉托色尼(Eratosthenes)筛法”。他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。
    
    具体做法如下:
    <1> 先将1挖掉(因为1不是素数)。
    <2> 用2去除它后面的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。
    <3> 用3去除它后面的各数,把3的倍数挖掉。
    <4> 分别用4、5…各数作为除数去除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。例如找1~50的素数,要一直进行到除数为47为止(事实上,可以简化,如果需要找1~n范围内素数表,只需进行到除数为n^2(根号n),取其整数即可。例如对1~50,只需进行到将50^2作为除数即可。)
    
    如上算法可表示为:
    <1> 挖去1;
    <2> 用刚才被挖去的数的下一个数p去除p后面各数,把p的倍数挖掉;
    <3> 检查p是否小于n^2的整数部分(如果n=1000, 则检查p<31?),如果是,则返回(2)继续执行,否则就结束;
    <4> 纸上剩下的数就是素数。
    
    
    定义1个数组a, a[1]~a[100] 分别代表1~100这100个数。
    如果检查出数组a的某一元素的值不是素数,就将其值设为0,最后剩下不为0的就是素数。
    
    */
    
    #include <iostream>
    #include <iomanip>
    using namespace std;
    #include <math.h>
    int main()
     {int i,j,n,a[101]; //定义a数组包含101个元素
      for (i=1;i<=100;i++) //a[0]不用,只用a[1]~a[100]
        a[i]=i; //使a[1]~a[100]得值分别为1~100
      a[1]=0;   //先“挖掉”a[1]
      for (i=2;i<sqrt(100);i++)  //i表示被除数下标,从2~sqrt(n) n=100
        for (j=i+1;j<=100;j++)  //j表示除数下标,从i后面的i+1到100
           {if(a[i]!=0 && a[j]!=0)  
    	      if (a[j]%a[i]==0)  //如果整除,表示a[j]不是素数,则挖掉它
    			  a[j]=0;  }        
        cout<<endl;
        for (i=1,n=0;i<=100;i++)  
         {if (a[i]!=0)   //没有被挖掉的数,即值不为0的数,为素数
           {cout<<setw(5)<<a[i]<<" ";
    	    n++;}  //累计素数个数      
          if(n==10) //输出10个数后换行
            {cout<<endl;
       	     n=0;}
         }
    	cout<<endl;
    	return 0;
       } 
    
    
     
    

    展开全文
  • //筛选法就是“埃拉托色尼筛法” //就是将非素数“挖掉”,只剩下素数,所谓挖掉就是把非素数归为0,之后 进行判断即可 //1:先输入数组元素 //2:先把a[1]等于0; //3:i从2开始,可以小于100,也可以根号下(100)...
  • 用筛选法求100以内的素数问题

    千次阅读 2014-04-11 10:16:33
    #include #include int main() { int i,j,n,a[101]; for(i=1;i<=100;i++)/*a[0]不用,只用a[1]到a[100]*/ a[i]=i; a[1]=0;/*先挖掉a[1]*/ for(i=2;i(100);i++) if(a[i]!=0)
  • 【C语言】 利用筛选法求100以内的素数

    万次阅读 多人点赞 2018-10-27 09:41:29
    //C语言 筛选法求100以内的素数 //原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质 //数的倍数筛掉。 //我们将从2开始 2除后面的数...
  • 用筛选法求100以内的的素数 1.算法介绍 筛选法是指埃拉托色尼(Eratosthenes)筛选,埃拉托色尼是古希腊的著名数学家。他采取的方法是,先写下1到1000的全部整数,然后逐个判断它们是否素数,找出一个非素数,就把...
  • 筛选法求100以内的素数

    千次阅读 2011-02-19 14:07:00
    筛选法求100以内的素数 算法: (1)挖去1; (2)下一个未被挖去的数P去除P后面各数,把P的倍数挖掉; (3)检查P是否小于n的开方的整数部分,如果是,则返回2继续执行,否则就结束。 (4)剩下的数就是素数...
  • 用筛选法求N以内的素数解题思想操作步骤第一步第二步第三步第四步第五步具体代码总结 解题思想 筛选法其实就是对2,5,3,7分别筛选,分别把除了自身其他的倍数筛选出来。下面以100以内举例。 操作步骤 第一步 首先...
  • MIPS汇编下用筛选法求100以内素数,有C语言对照,工具话,用spim模拟器。
  • 简单素数筛选法求N以内的素数。 输入 N 输出 2~N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 #include<stdio.h> int main() { int n, i, m; ...
  • 用筛选法求n以内的素数。 筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0 的数即为素数。输入:...
  • 简单素数筛选法求N以内的素数。 输入 N 输出 2~N的素数 样例输入 100## 标题 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 #include<stdio.h> int main() { int n, i...
  • 用筛选法求100以内的素数

    千次阅读 2015-05-03 16:53:06
    #include #include #define N 100 void PrintPrime(int a[], int n) { int i; for (i = 2; i ;i++) { if (a[i]!=0) { printf("%d\t", a[i]); // cout [i] // error C2065 :

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

用筛选法求100以内的素数