关于#c++#的问题,请各位专家解答!

#include

using namespace std;

int main(void)
{
int i=0;
int n=0;

bool IsPrime=false;

cout<<"请输入一个正整数:\n";

cin>>n;

while(n!=1)
{
    IsPrime=true;

    for(i=2;i<=n/2;i++)
    {
        if(n%i==0)
        {
            IsPrime=false;
            break;
        }
    }
    if(IsPrime)
    {
        cout<<n<<"是一个素数"<<endl<<endl;
    }
    else
    {
        cout<<n<<"不是一个素数"<<endl<<endl;
    }
}
return 0;

}

img

#include<iostream> 
using namespace std;
int main(void)
{
int i=0;
int n=0;
bool IsPrime=false;
cout<<"请输入一个正整数:\n";
cin>>n;
while(n!=1)
{
    IsPrime=true;
    for(i=2;i<=n/2;i++)
    {
        if(n%i==0)
        {
            IsPrime=false;
            break;
        }
    }
    if(IsPrime)
    {
        cout<<n<<"是一个素数"<<endl<<endl;
    }
    else
    {
        cout<<n<<"不是一个素数"<<endl<<endl;
    }
    n--;
}
return 0;
}

img


这里的n在每次循环结束后都没有自增
如果你只想输出单个数是否为素数的话不需要while循环
如果想输出某个范围内的话在while内对对应的范围进行判断
有帮助望采纳

最后一个else结束后,加一句n--;
不然n值不变,死循环了