输入两个正整数m和n,计算其间的所有素数的个数.。这为啥不对呀

#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;
}