#include <iostream>
#include <math.h>
using namespace std;
int main(){
int n,p=0;
cin>>n;
for(int i=2;i<=n;i++){
int s=pow(2,i)-1;
for(int j=2;j<=sqrt(s);j++){
if(s%j==0)
break;
if(j>sqrt(s)){
cout<<s<<endl;
p++;
}
}
if(p==0)
cout<<"None"<<endl;
return 0;
}
}
执行的结果不是数字,是None是怎么回事?求解
修改如下,供参考:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n,i,j,p=0;
cin>>n;
for(i=2;i <= n;i++){
int s=pow(2,i)-1;
for(j=2;j<=sqrt(s);j++){
if(s%j==0)
break;
}
if(j>sqrt(s)){
cout<<s<<endl;
p++;
}
}
if(p==0)
cout<<"None"<<endl;
return 0;
}
我帮你重打吧,你思路不对
把 if(j>sqrt(s))这个代码段放到内层的for循环外面