该程序用于打印素数直到给定输入,并用逗号分隔每个素数。
void main(){
int N, counter=0, isPrime;
int k, j;
cout << "Enter maximum range: ";
cin >> N;
for (j=2; j<=N; j++){
isPrime = 0;
k = 2;
while (k<j){
if (j%k==0){
isPrime++;
}
k++;
}
if (isPrime==0){
if (k==N){
cout << j;
}
else{
cout << j << ",";
}
counter++;
}
}
cout << endl;
system("pause");
}
它只删除素数输入的最后一个逗号,而不是任何其他输入。我怎样才能解决这个问题?
Input: 23
Output: 2,3,5,7,11,13,17,19,23
Input: 8
Output: 2,3,5,7,
Input: 9
Output: 2,3,5,7,
原文由 Talha Gillani 发布,翻译遵循 CC BY-SA 4.0 许可协议
不需要
if then else
这么多:所有情况都不需要检查,例如向量是否为空。
如果你在开头接受一个额外的空格,只需将字符串替换为char,然后性能会得到更大的提升。