Я не пытаюсь попросить вас, ребята, помочь мне сделать домашнее задание, потому что я провел много исследований, а также сам пытаюсь его запрограммировать, но все же я сталкиваюсь с проблемой, и я думаю, что пока знаю, где проблема но я до сих пор не могу найти решение:
Код
#include <iostream>
#include <string>
#include <cmath>
int main(void)
{
using namespace std;
int num;
int max;
string answer = "";
cin >> num;
for(int i = 2 ; i < num ; i++)
{
max = sqrt(i);
if(max < 2) // This must be done beacuse sqrt(2) and sqrt(3)
{ // is 1 which will make it become nonprime.
answer += i;
answer += ' ';
continue;
}
for(int j = 2 ; j <= max ; j++) // Trial division ,divide each by integer
{ // more than 1 and less than sqrt(oftheinteger)
if(i % j == 0)
break;
else if(j == max)
{
answer += i + " ";
answer += ' ';
}
}
}
cout <<"The answer is " << answer ;
return 0;
}
Вопрос
1.) Эта программа запросит у пользователя номер и вернет все простые числа перед ним (например, если пользователь введет 9: тогда ответ - 2, 3, 5, 7).
2.) Я думаю, что неправильная часть - это конкатенация строк и целых чисел, до сих пор я ломаю голову над тем, как объединить строку и целое число в C ++ (предыдущий программист Javascript, поэтому я привык использовать +
как concat string-int оператор)
3.) Помимо проблемы, о которой я упоминал выше, пока я прошёл код и не обнаружил никакой другой проблемы. Если кому-то из экспертов удастся найти такую проблему, не забудьте указать ей, чтобы просветить меня ??
4.) Если есть какая-либо ошибка с точки зрения кодирования или алгоритма или чего-либо сделанного мной, пожалуйста, не стесняйтесь указывать на это, я готов учиться.
Спасибо, что потратили время на чтение моего вопроса