下面是我编的代码,不知道哪里出错,调试了半天,越调越错,求大神指点~
55555~
变了这么久的程,分马上就要用光了,只能给这么多分了,求大神不要嫌弃
#include <stdio.h>
#include <conio.h>
#include <math.h>
int prime(int n)
{
int r,t,i;
r=sqrt(n);
for(t=1,i=2;t&&i<=r;i++)
{
if(n%i==0)
{
t=0;
return 1;
}
else
return 0;
}
}
int main ()
{ int m,n,i,t=0;
printf("请输入范围m,n\n");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i+=2)
{
if (prime(i)&&prime(i+2))
{
t+=1;
printf("(%d,%d)\n",i,i+2);
}
else
printf("无孪生素数!");
}
printf("%d",t);
getch();
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
int prime(int n)
{
int r,i; 模滚卜 //此处定义的t不懂你有什么用,反正我没用
r=sqrt(n);
for(i=2;i<=r;i++)
{
if(n%i==0) //此处n%i==0,说明不是素数,立刻跳出循环,你刚好反了
return 0;
}
旦穗 return 1;
}
int main ()
{
int m,n,i,t=0;
printf("请输入范围m,n\n");
scanf("%d%d",&m,&n);
for(i=m;i<=n-2;i++) //此处限制i<=n-2,不然prime(i+2)超过范备迹围;另外i每次自加1, //不能加2
{
if (prime(i)&&prime(i+2))
{
t+=1;
printf("(%d,%d)\n",i,i+2);
}
}
printf("%d\n",t);
if(t==0)
printf("无孪生素数!"); //这个输出格式应该在循环外判定
getch();
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
int prime(int n)
{
int r,i,flag=1;
r=sqrt(n);
for(i=2;i<=r;i++)
{
if(n%i==0)
flag=0;
}
return flag;
}
int main ()
{ int m,n,i,t=0,flag=0;
printf("请槐蚂饥输入范围物枣m,n\n");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i+=2)
{
if(prime(i)&&prime(i+2)&&(i!=1))
{
t+=1;
flag=1;
printf("铅返(%d,%d)\n",i,i+2);
}
}
if(flag==0)
printf("没有孪生素数\n");
printf("%d",t);
return 0;
}