как найти ряд чисел, имеющих 5 или более факторов в заданном диапазоне в переполнении стека

#включают
использование пространства имен std;

int main()
{
int n, i;

cout << "Enter a positive integer: ";
cin >> n;

cout << "Factors of " << n << " are: " << endl;
for(i = 1; i <= n; ++i)
{
if(n % i == 0)
cout << i << endl;
}

return 0;
}

Я понимаю ниже проблему поиска факторов чисел. Но я хочу сделать программу на С ++, которая показывает только те числа, которые имеют 5 или более факторов. Предположим, я задаю диапазон чисел от 15 до 20. Затем он напечатает только те числа, которые имеют 5 или более факторов. Например, если я задаю диапазон от 15 до 20, он выведет только 16, 18, 20. Потому что эти 3 целых имеют 5 или более факторов в диапазоне от 15 до 20. я не мог понять, как сделать этот код, поэтому я спрашиваю.

-2

Решение

Как я понял, вы ищете технику, находящую число в простых числах натурального числа. Во-первых, код, который вы опубликовали, предназначен для получения всех делителей с заданным положительным числом. Но нахождение его основных факторов немного отличается, но идея такая же, как вы использовали (модульная арифметика)

это очень простая версия достижения вашей задачи (но нуждается в оптимизации)

#include <iostream>

//This function does not handle the repeating factors count
int numberOfPrimeFactors(int number) {
int count = 0;

for ( int i = 2; i <= number; ++i ) {
while ( number % i == 0 ) {
number /= i;
count++;
}
}
return count;
}int main() {

int Rbegin = 1;
int Rend   = 100;

for(int i = Rbegin; i<Rend; ++i) {
if(numberOfPrimeFactors(i) >= 5)
std::cout << i << " has 5 or more prime factor"<< std::endl;
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]