| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4926 人关注过本帖
标题:编写求m,n的所有素数
只看楼主 加入收藏
jiayayun
Rank: 1
来 自:山西省临汾市洪洞县
等 级:新手上路
帖 子:13
专家分:3
注 册:2010-4-13
结帖率:60%
收藏
已结贴  问题点数:15 回复次数:7 
编写求m,n的所有素数
编写求m,n的所有素数
搜索更多相关主题的帖子: 编写 素数 
2010-04-20 18:52
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:5 
#include<stdio.h>
#include<math.h>
int main()
{
   int j,i,a,n,m;
   while(scanf("%d%d",&n,&m)!=EOF &&n<m)
{
   for(i=n;i<m;i++)
{
    for(j=2;j<sqrt(i);j++)
  if(i%j==0) break;
   
  if(j>=(int)sqrt(i)) printf("%d ",i);
}
}
}
自己去编译下  在回复框写的
2010-04-20 19:57
account
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
收藏
得分:2 
main()
{
 int m,n,i,j,c=0;
 printf("input area:\n");
 scanf("%d,%d",&n,&m);
 for(i=n;i<=m;i++)
   {
    for(j=2;j<=m;j++)
    if(i%j==0)
    break;
     if(j>=i)
     {
      c++;
      printf("the prime number is %d\n",i);
     }
    }
 printf("the total of prime number is %d",c);
}
LZ,这是我根据你的要求写的,求n->m区间内所有素数,你看符合要求么?草狼是个高手,在此也谢谢你,递归那个我已经想通啦

[ 本帖最后由 account 于 2010-4-20 20:31 编辑 ]
2010-04-20 20:30
Alidesheng
Rank: 2
等 级:论坛游民
帖 子:108
专家分:21
注 册:2010-4-18
收藏
得分:3 
#include<stdio.h>
int main()
{
    int i,j,n,m,k=0;
    scanf("%d%d”,&n,&m);
    an[0]=an[1]=0;
    for(i=n;i<=m;i++)
        an[i]=1;
    for(i=n;i<=m;i++)
    {
        if(an[i]==1)
        {
            for(j=i*2;j<=m;j+=i)
                an[j]=0;
            k++;
            printf("%d%c",i,(k%10==0?'\n':' '));
        }
    }
    putchar('\n');
    return 0;
}
这是我根据自己的经验编的一个程序,运行一下看符合你的要求吗??

[ 本帖最后由 Alidesheng 于 2010-4-20 22:23 编辑 ]
2010-04-20 22:20
newstar10
Rank: 2
等 级:论坛游民
帖 子:32
专家分:48
注 册:2010-4-14
收藏
得分:2 
一般会采取2种方法:
1.辗转相除法,即2楼采用的方法。
2.筛选法,将数存放在数组里,将所有是n的倍数的数置0,剩下的非零数就是素数了。
2010-04-20 22:30
honey536
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:68
专家分:76
注 册:2010-4-20
收藏
得分:2 
#include<stdio.h>
#include<math.h>
int main()
{   
int a,b,i,k1,k2,j=0,m;
printf("please input the number:\n");
scanf("%d,%d",&a,&b);
 for(i=a;i<=b;i++)
 {k1=sqrt(b);
 k2=sqrt(a);
 for(m=2;k2<=m<=k1;m++)
    { if(i%m==0)
         break;
     if(m>=k1)
     {
         printf("%d",i);
         j++;

     }
 }
 }
printf("the total of prime number is %d",j);

}
2010-04-21 08:13
jiayayun
Rank: 1
来 自:山西省临汾市洪洞县
等 级:新手上路
帖 子:13
专家分:3
注 册:2010-4-13
收藏
得分:0 
为什么都用求平方根啊  这是什么意思  为什么要求平方根   谢谢啊
2010-04-21 10:19
account
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
收藏
得分:1 
以下是引用jiayayun在2010-4-21 10:19:28的发言:

为什么都用求平方根啊  这是什么意思  为什么要求平方根   谢谢啊
这也是算法啦!假设一个数正数m(m!=1),必存在m=n*n,即可判断2-n之间是否存在被m整除的数,若不存在,即可判断必然为素数。
这个算法是开销比较小的算法,值得推荐,若只为方便理解,那么从2-m之间整除也可以
2010-04-21 10:25
快速回复:编写求m,n的所有素数
数据加载中...
 
   



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

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