#include
using namespace std;
int main()
{
int n,i,m,t,z=0;
bool flag;
cin>>n>>m;
for(t=m;t<=n;t++)
{
flag=1;
for(i=2;i<t;i++)
if(m%i==0)
{
flag=0;
break;
}
if(flag==1)
z=z++;
}
cout<<z<<endl;
return 0;
}
是if(t%i==0)而不是if(m%i==0)第12行
修改如下,问题见注释,供参考:
#include<iostream.h>
using namespace std;
int main()
{
int n,i,m,t,z=0;
bool flag;
cin>>n>>m;
if(n<m){t=n;n=m;m=t;}//输入必须n>m,若反则调换位置
for(t=m;t<=n;t++)
{
flag=1;
for(i=2;i<t;i++)
if(t%i==0)//if(m%i==0)
{
flag=0;
break;
}
if(flag==1&&t!=1)z=z++;//1不是素数
}
cout<<z<<endl;
return 0;
}