我需要制作一个程序,计算输入N的所有素数,范围从N-10到N + 10。我不知道自己做错了什么。为什么Y没有增加?
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int N, Y;
bool Prime=true;
cout<<"Enter N: ";
cin>>N;
Y=N;
for (int i=1; i<=N+10;i++){
for(int k = 2; k <= sqrt(Y); k++,Y++){
if(Y%k== 0) {
Prime = false;
}
}
if(Prime && Y>1)
cout<< "Number " <<Y
<< " is Prime."<<endl;
}
}
答案 0 :(得分:0)
有太多事情是错误的。 这是应该如何:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int N;
bool Prime;
cin >> N;
for (int i=1; i<=N+10;i++){
Prime = true;
int max = sqrt(i);
for (int k = 2; k <= max; k++) {
if((i % k) == 0) {
Prime = false;
break;
}
}
if (Prime && (i > 1))
cout << "Number " << i << " is Prime." << endl;
}
return 0;
}