首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在做求素数作业碰到很奇怪的有关问题 求大神解释

2013-06-26 
在做求素数作业碰到很奇怪的问题 求大神解释#include stdio.h#include math.h#include iostreamusin

在做求素数作业碰到很奇怪的问题 求大神解释
#include <stdio.h>
#include <math.h>
#include <iostream>

using namespace std;

bool isPrime(int);

int main(){
   /*int n;
   cout<<"please enter your number 'N'  then press ENTER"<<endl;
   cin>>n;*/
int n=100;

   for(int i=2;i<=n;i++){

   if(isPrime(i))
   cout<<i<<"   ";
   
   }
   



   system("pause");
   return 0;
}


//bool isPrime(int i){
//int m,n;
//n=sqrt(i*1.0);
//if(i==1) return 0;
//else for(int m=2;m<=n;m++){
// if(i%m == 0)
// return false;
//return true;
//}
//}

bool isPrime(int i){
int m,n,count=0;
n=sqrt(i*1.0);
for(m=2;m<n;m++){
if(i%m == 0) 
    count++;}

if(count==0)
return true;

}


以上是我写的代码 为什么出来的解老师错的呢?真是郁闷,求大神帮忙哈,谢啦! c c++ visual?studio 素数 math.h
[解决办法]


#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
bool isPrime(int);
int main(){
int n=100;
   for(int i=2;i<=n;i++){
   if(isPrime(i))
   cout<<i<<"   ";   
   }
   system("pause");
   return 0;
}
bool isPrime(int i){
int m,n,count=0;
n=sqrt(i*1.0);
for(m=2;m<=n;m++){
if(i%m == 0) 
    count++;}
if(count==0)
return true;
return false;
}


[解决办法]

bool isPrime(int i){
int m,n,count=0;
n=sqrt(i*1.0);
for(m=2; m<=n; m++){//这里应该要<=。。
if(i % m == 0) 
count++;
}
if(count==0)
return true;
return false;//这里不是素数的要return false啊。。
}

[解决办法]
你注释的没什么问题
可能是你看错了,括号扩错了
bool isPrime(int i){
int m,n;
n=sqrt(i*1.0);
if(i==1) return 0;
else for(int m=2;m<=n;m++){
 if(i%m == 0)
 return false;
}return true;//括号括在这里
}

热点排行