Другие языки программирования и технологии

Помогите разобраться в C++ с программой по поиску простых чисел

и ещё сравнение с 1, а не с 2
Ниже исправленный вариант:

#include <iostream>
using namespace std;
int main()
{
int i,j;
int sum;
for (i=2; i<101; i++)
{
for(sum=0,j=2; j<101; j++) if (i%j==0) sum++;
if(sum==1) cout << i << "\t";
}
system ("pause");
return 0;
}
Андрей Симбаев
Андрей Симбаев
76 473
Лучший ответ
бегло прочистил от лишних скобок не влияющих.
и перебросил объявления переменных i и j, это тут тоже не влияет:
и слегка озадачился алгоритму

int main() {
int sum = 0;
for (int i=2; i< 101; i++) {
for (int j=2; j< 101; j++) if (i%j == 0) sum ++ ;
if (sum==2)cout << i << "\t";
}
system ("pause");
return 0;
}

сомнения вызывают
for (int j=2; j< 101; j++) if (i%j == 0) sum ++ ; // если делится то сумму попавшихся делимостей увеличить -сработает на каждом i%j==0
и
if (sum==2)cout << i << "\t"; если сумма равна двум то вывести счетчик внешнего цикла - сработает однажды, если во всех внутренних циклах накопленных к этому моменту попадется ровно два увеличения summ

ну и сами пределы циклов - тут я не стал копать
#include<iostream>
using namespace std;

int main(){
for (int i = 2; i < 100; i++){
bool prime = true;
for (int j = 2; j * j <= i; j++){
if (i % j == 0){
prime = false;
}
}
if (prime) cout << i << " ";
}
}