哪位高人能找出我的C++程序错在哪里?小弟不胜感激

来源:百度知道 编辑:UC知道 时间:2024/09/21 21:48:17
//这是一个判断整数是否是质数的程序
#include <iostream>
#include <math.h>
using namespace std;

int main(){
int n,i;//n是输入的数 i是计数器
double o;//o的算术平方根
bool is_prime=true;
cout << "请输入一个数";
cin >> n;
o=sqrt(n);
i=2;
while(i<=o){
if(o%i==0){
is_prime=false;
break;
}
i++;
}
if(is_prime){
cout << n << "为质数";
}
else{
cout << n << "为非质数";
}
return 0;
}
按楼下仁兄的说法,编译通过了,现在问题是不论我输入什么数字,结果都是“非负数”。这是怎么回事?

#include<iostream>
#include<math.h>
using namespace std;

main (){
int n,o;
int is_prime=true;
cout << \"please write a number\" << endl;
cin >> n;
for(int m=2;m<=sqrt(static_cast<double>(n));m++){
if(n%m==0){
is_prime=false;
}
}
if(is_prime==true){
cout << \"is prime\" << endl;
}
else{
cout << \"isn\'t prime\" << endl;
}
return 0;
}
这样子~

改好了
#include <iostream>
#include <math.h>
using namespace std;

int main(){
int n,i;//n是输入的数 i是计数器
int o;//o的算术平方根
bool is_prime=true;
cout << "请输入一个数";
cin >