| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2743 人关注过本帖
标题:用筛先法求出100以内的素数,
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
可是,你的算法和我的似乎是一样的嘛………………
到底什么叫筛法啊?

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-11-28 19:55
freezingdevil
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-11-26
收藏
得分:0 
#include<math.h>
#include<stdio.h>
main()
{int i,a[100],x,j;
x=sqrt(100);
for(i=1;i<=100;i++)
a[i]=i;
for(i=2;i<x;i++)
for(j=i+1;j<=100;j++)
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
for(j=2;j<100;j++)
if(a[j]!=0)
printf("%dt",a[j]);
}
这样子应该就行了吧,呵呵!

[[italic] 本帖最后由 freezingdevil 于 2007-11-29 06:44 编辑 [/italic]]
2007-11-29 06:43
lusan168
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-11-17
收藏
得分:0 
#include<stdio.h>
#include<math.h>
void main()
{
    int i,j,h=0;
    int leap=1;
    for(i=1;i<=100;i++)
    {
        int k=sqrt(i+1);
     for(j=2;j<=k;j++)
    
         if (i%j==0)
            { leap=0;
         break;    }
    
     if (leap)
     {
         printf("%-4d",i);
         h++;
         if(h%10==0)
             printf("\n");
     }
     leap=1;

    }
    printf("total is %d\n",h);
}
2007-11-29 22:52
爱在夕阳前
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-11-17
收藏
得分:0 
include<stdio.h>
void main()
{ int i,m=100,n;
 while(i<=m/2)
 {  if(i%m/2==0)
      break;
    if(i>m/2)
    printf("%d",i);
    n++;
 }
 if(n==10)  printf("\n");
}

年青人永远怀着高飞的雄心,那怕只有 一点希望也能让他们走很长的一段路。(有得必有失,有失必有得)
2007-11-30 00:29
linx218
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-12-10
收藏
得分:0 
用筛选法求100以内的素数
/*用筛选法求100以内的素数 */

#include "stdio.h"
#include "conio.h"
#define N 100
main()
{ int a[N],i,j,n=0;
  /*数组元素置数,由于1不是素数,从2开始*/
  for(i=1;i<N;i++)
   a[i]=i+1;
  /*筛选,注意用i去除a[j]时,不会去除自身*/
  for(i=2;i<N;i++)
    for(j=i;j<N;j++)
    if(a[j]%i==0) a[j]=0;
  /*输出结果*/
  for(i=1;i<N;i++)
    if(a[i]!=0)
    {printf("%5d",a[i]);
     n++;
     if(!(n%5)) printf("\n");  /*输出五个数后换行*/
    }
  getch();
  }
2007-11-30 10:56
linx218
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-12-10
收藏
得分:0 
补充
筛选时,外层循环的条件用 i<sqrt(N),能提高执行效率,但程序前应包含 “math.h”头文件。上面程序在TC2中以调试,13楼的程序好象不是筛选法,14楼的也错了,没有结果。
2007-11-30 11:16
dandanmei
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-11-30
收藏
得分:0 
main()
{int a[100];
  int i,j;
  for(i=1;i<=100;i++)
     a[i]=i;
  a[1]=0;
  for(i=2;i<=sqr(100);i++)
     for(j=1;j<=100;j++)
        if(a[j] % i=0  && a[j]/i!=1)
           a[j]=0;
   for(i=1;i<=100;i++)
       if(a[i]!=0)   pritnf("%d,",a[i]);
 }
2007-11-30 13:13
快速回复:用筛先法求出100以内的素数,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018246 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved