C语言,求输入的两个数之间的所有素数
答案:3 悬赏:30 手机版
解决时间 2021-03-20 21:48
- 提问者网友:送舟行
- 2021-03-20 14:54
C语言,求输入的两个数之间的所有素数
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-03-20 16:30
思路:先定义一个isp函数用来判断一个数是否是素数,接着就依次遍历两个数之间的所有数,判断其是否是素数,是就输出该数。
参考代码:输出9到100之间的所有素数(可以输入9 100也可以输入100 9,即数字大小顺序不限制)
#include
bool isp(int n)//求矩阵n列的累加和
{
int i;
for(i=2;i if(n%i==0) return false;
return true;
}
int main()
{
int a,b,i;
scanf("%d%d",&a,&b);
if(a>b){
t=a;
a=b;
b=t;
}
for(i=a;i<=b;i++)
if(isp(i))
printf("%d ",i);
return 0;
}
参考代码:输出9到100之间的所有素数(可以输入9 100也可以输入100 9,即数字大小顺序不限制)
#include
bool isp(int n)//求矩阵n列的累加和
{
int i;
for(i=2;i
return true;
}
int main()
{
int a,b,i;
scanf("%d%d",&a,&b);
if(a>b){
t=a;
a=b;
b=t;
}
for(i=a;i<=b;i++)
if(isp(i))
printf("%d ",i);
return 0;
}
全部回答
- 1楼网友:鸽屿
- 2021-03-20 18:16
#include
#include
#include
int main()
{
int a,b,m,k,t,n;
scanf("%d%d",&a,&b);
if(a>=b)
{
t=a;
a=b;
b=t;
}
for(k=a;k<=b;k++)
{ n=(int)sqrt(k);
for(m=2;m<=n;m++)
if(k%m==0)
break;
if(m==n+1)
printf("%d ",k);
}
return 0;
}
对照着参考下吧,望采纳追问for(m=2;m<=k-1;m++)
if(k%m!=0)
printf("%d ",k);}
return 0;
}
请问这里哪里错了?追答追问采纳者吧,亲。木有心情回答了
#include
#include
int main()
{
int a,b,m,k,t,n;
scanf("%d%d",&a,&b);
if(a>=b)
{
t=a;
a=b;
b=t;
}
for(k=a;k<=b;k++)
{ n=(int)sqrt(k);
for(m=2;m<=n;m++)
if(k%m==0)
break;
if(m==n+1)
printf("%d ",k);
}
return 0;
}
对照着参考下吧,望采纳追问for(m=2;m<=k-1;m++)
if(k%m!=0)
printf("%d ",k);}
return 0;
}
请问这里哪里错了?追答追问采纳者吧,亲。木有心情回答了
- 2楼网友:末日狂欢
- 2021-03-20 18:08
你看一下下面的代码,是在你的基础上改的,其中if,else这儿有错误,两外就是判断条件,素数的定义是只能整除1和其本身(1除外),所以判断是是出1和本身之外其他都不整除才是素数。另外给你说一个更高效的,其实只需要从2循环到这个数的正平方根就可以,没必要循环到这个数的前一个数。
望采纳
#include
#include
int main()
{
int a,b,m,k,t,flag;
scanf("%d%d",&a,&b);
if(a>=b){
t=a;
a=b;
b=t;
}
for(k=a;k<=b;k++)
{
flag=1;
for(m=2;m<=k-1;m++)
if(k%m==0)
flag=0;
if(flag==1&&k!=1)//1不是素数
printf("%d ",k);
}
printf("\n");
return 0;
}
望采纳
#include
#include
int main()
{
int a,b,m,k,t,flag;
scanf("%d%d",&a,&b);
if(a>=b){
t=a;
a=b;
b=t;
}
for(k=a;k<=b;k++)
{
flag=1;
for(m=2;m<=k-1;m++)
if(k%m==0)
flag=0;
if(flag==1&&k!=1)//1不是素数
printf("%d ",k);
}
printf("\n");
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯