Es gibt 1000 Zahlen in numbers.txt, jeweils 2 bis 9 Ziffern, jeweils in einer eigenen Zeile. Die Aufgabe ist es zu zählen, wie viele Zahlen es gibt, die die Bedingung erfüllen: wenn sie faktorisiert sind, hat diese Zahl genau 3 verschiedene Primfaktoren, sie können mehrmals auftreten und sie sind alle gerade Zahlen.Zählnummern mit drei verschiedenen Primfaktoren
beispiel - Faktoren: 3, 5, 7 - JA, - Faktoren: 3, 3, 11, 13 - JA,
- Faktoren: 3, 3,3,5,5,5,7,7,7 - JA,
- Faktoren: 5, 11 - NEIN.
#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;
}
Ich weiß aus dem numbers.txt, dass es viele Zahlen sind, die die Bedingung erfüllen, aber das Programm kehrt nur 1. Warum so?
"sie alle sind gerade Zahlen". Keine Ihrer Beispielnummern ist gerade! – CinCout
Unmöglich, gerade Zahlen zu haben. Primzahlen sind immer merkwürdig. – AhmadWabbi
@ A.Wabbi 2 ist eine Primzahl – NathanOliver