求高手用c语言编程,输出[m,n]间的所有素数,并且每5个换行,如果区间内不存在素数,输出0。
答案:2 悬赏:30 手机版
解决时间 2021-11-13 16:17
- 提问者网友:风月客
- 2021-11-12 22:18
求高手用c语言编程,输出[m,n]间的所有素数,并且每5个换行,如果区间内不存在素数,输出0。
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-11-12 23:19
程序源代码:
#include
#include
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 {
if(i%k==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%-4d",i);
count++;
}
if(count%5==0)
if(count==0)
运行结果:
追问程序有一个错误
#include
#include
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 {
if(i%k==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%-4d",i);
count++;
}
if(count%5==0)
printf("
");
if(count==0)
printf("该区间存在的素数为:0
");
运行结果:
追问程序有一个错误
全部回答
- 1楼网友:拜訪者
- 2021-11-13 00:20
学过数论的人应该知道,m和n的大小要有限制,因为一个很大的数判断它是否为素数从计算上是不可能追问那你就限制一下吧,输入n 和r 的值;
当用户输入0 0 时,程序结束。追答循环m和n之间的所有整数,对于每一个整数使用“素性测试”,可以采用Miller-Rabin算法,我刚才查了一下,网上有许多这个算法的实现。
当用户输入0 0 时,程序结束。追答循环m和n之间的所有整数,对于每一个整数使用“素性测试”,可以采用Miller-Rabin算法,我刚才查了一下,网上有许多这个算法的实现。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯