求高手用c语言编程,输出[m,n]间的所有素数,并且每5个换行,如果区间内不存在素数,输出0。

判断整数是否为素数要求用独立的子函数实现。... 判断整数是否为素数要求用独立的子函数实现。 展开
 我来答 举报
sunbin881115
2011-03-24 · TA获得超过197个赞
知道答主
回答量:59
采纳率:0%
帮助的人:92.2万
展开全部

程序源代码:

#include<stdio.h>

#include<math.h>

void main()

{

    

  int i,k,m,n;

  int count=0;

  printf("请输入求素数的上区间m的值:");

  scanf("%d",&m);

     printf("请输入求素数的下区间n的值:");

   scanf("%d",&n);

  for(i=m;i<=n;i++)

  {

   if(i==1)

    continue;

   int flag=1;

   for(k=2;k<i;k++)

   {

    if(i%k==0)

    {

     flag=0;

     break;

    }

     

   }

   

   if(flag==1)

   {

    printf("%-4d",i);

   count++;

   }

  if(count%5==0)

    printf("\n");

   }

  if(count==0)

   printf("该区间存在的素数为:0\n");

}

运行结果:

追问
程序有一个错误
張宣勤Ci
2011-03-23
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
学过数论的人应该知道,m和n的大小要有限制,因为一个很大的数判断它是否为素数从计算上是不可能
追问
那你就限制一下吧,输入n 和r 的值;
当用户输入0 0 时,程序结束。
追答
循环m和n之间的所有整数,对于每一个整数使用“素性测试”,可以采用Miller-Rabin算法,我刚才查了一下,网上有许多这个算法的实现。
3 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式