Как подсчитать, сколько раз цикл был выполнен, мой код не работает, как я ожидал,
найдите числа простых чисел до ввода n номера пользователем и покажите их и подсчитайте, сколько
числа в целом
ех. числовой ввод позволяет говорить 7,
и есть 3 числа до 7
поэтому он отображает 2,3,5,7 и есть 3 простых числа до 7
#include <iostream>
using namespace std;
int main()
{
int n, i, k;
int counter = 0;
bool isprime;
cout << "Enter a positive integer n: ";
cin >> n;
for(int k = 2; k <= n; k++)
{
isprime = true;
for(int i = 2; i <= k - 1; i++)
if(k%i == 0)
{
isprime = false;
}
if(isprime)
cout << k << "\t";}
cout << "\nThere are " << counter << " primes less than " << n;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n, i, k;
int counter = 0;
bool isprime;
cout << "Enter a positive integer n: ";
cin >> n;
for(int k = 2; k <= n; k++)
{
isprime = true;
for(int i = 2; i <= k - 1; i++)
if(k%i == 0)
{
isprime = false;
}
if(isprime)
{
cout << k << "\t";
counter++;
}
}
cout << "\nThere are " << counter - 1<< " primes less than " << n;
return 0;
}
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int num;
int count = 0;
cout << "Enter your range: ";
cin >> num;
for(int i = 1; i <= num; i++)
{
count = 0;
for(int j = 2; j <= sqrt(i); j++)
{
if(i % j == 0)
{
count++;
break;
}
}
if(count == 0 && i != 1)
cout << i << " ";
}
cout << endl;
}
Это увеличит значение счетчика каждый раз, когда будет простое число.
В вашем примере счетчик никогда не изменяется от его начального значения. Попробуйте подсчитать, что вы хотите подсчитать.
Добавлено:... BTW. предпочитать
for (i = 0; i < n; ++i)
для зацикливания. "I <n" более идиоматично (легче читать), а ++i обычно будет более эффективным, чем i++.
Как указано выше, counter
не увеличивается.
Вы должны сделать функцию
isPrime?(int n)
{
int sqrt_n = sqrt(n)
for(int i = 2; i <= sqrt_n; i++){ //You could check only to sqrt(n)
if(n%i == 0)
{
return false;
}
}
return true;
}
И тогда вы можете использовать эту функцию следующим образом:
int main()
{
int n, i, k;
int counter = 0;
cout << "Enter a positive integer n: ";
cin >> n;
for(int k = 2; k <= n; k++)
{
if(isPrime?(k)) {
counter++;
cout << k << "\t";
}
cout << "\nThere are " << counter << " primes less than " << n;
return 0;
}