猿问

c++素数问题

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

int i,j;

cin>>i;

bool ch; 

for(j=2;j<=sqrt(i);j++)

{

if(i%j==0)

ch=true;   //真 不是素数 

if(i%j!=0)

ch=false;

}

if(ch)   /*******/

cout<<"不是素数"<<endl;

else

cout<<"是素数"<<endl;

}

在/***/处,若改为if(ch=true)不能正常输出,但是if(ch==false)可以正常输出,为什么????


the__sky123
浏览 1258回答 2
2回答

慕用4063026

你自己用了bool声明,if是判断语句,ch=true是个赋值语句,当然不行了,要==#include <iostream> #include <cmath> using namespace std; int main() { int i,j; cin>>i; bool ch;  for(j=2;j<=sqrt(i);j++) { if(i%j==0) ch=true;   //真 不是素数  if(i%j!=0) ch=false; } if(ch==true)   /*这里要判断*/ cout<<"不是素数"<<endl; else cout<<"是素数"<<endl; }

onemoo

你还没发现你写的一个是“=”,一个是“==”吗?现在明白了吗?
随时随地看视频慕课网APP
我要回答