В числителе имеется 1000 номеров. От 2 до 9 цифр каждый по отдельности. Упражнение состоит в том, чтобы подсчитать количество чисел, которые заполняют условие: при факторизации это число имеет ровно 3 разных простых фактора, они могут возникать несколько раз, и все они являются четными числами.Подсчет чисел, которые имеют три разных простых коэффициента
, например - факторы: 3, 5, 7 - ДА, - факторы: 3, 3, 11, 13 - ДА,
- факторы: 3, 3,3,5,5,5,7,7,7 - ДА,
- Факторы: 5, 11 - НЕТ.
#include <iostream>
#include <fstream>
using namespace std;
int number, threefnumbers=0;
int main()
{
ifstream file("numbers.txt");
ofstream outputf("results.txt");
int count_factors;
while (file >> number)
{
count_factors=0;
int factor=3;
if (number%2!=0)
{
while (number>1)
{
if (number%factor==0)
count_factors++;
while (number%factor==0)
{
number=number/factor;
}
factor+=2;
}
if (count_factors==3) threefnumbers++;
}
}
outputf << "59.1) " << endl << threefnumbers;
file.close();
outputf.close();
return 0;
}
Я знаю, что из numbers.txt, что есть много чисел, которые удовлетворяют условие, но программа возвращает только 1. Почему так?
«все они четные числа». Ни один из ваших номеров примеров не существует! – CinCout
Невозможно иметь четные числа. Премывания всегда странные. – AhmadWabbi
@ A.Wabbi 2 - простое число – NathanOliver