Skocz do zawartości

Suma cyfr liczby jest liczbą pierwszą


junior9520

Polecane posty

Witam,

jako zadanie domowe mam do wykonania program, który najpierw z pliku pobierze 10 liczb a następnie wypisze liczby ,

których suma cyfr jest liczbą pierwszą. Do tej pory napisałem coś takiego, ale nie działa i nie mam pomysłu co z tym dalej zrobić. Jestem w podstawie, nie chciałbym używać żadnych skompilowanych bibliotek itp.

Zasada miała być taka, że sprawdza pierwszą liczbę, poprzez obliczenie jej sumy i porównanie czy jest to liczba pierwsza. I jeśli suma jest liczbą pierwszą to wypisze te liczbe i przejdzie do następnej w tablicy

 

fstream plik;
plik.open("liczby.txt", ios::in);
if (plik.good() == true) {
cout << "Otworzylem plik" << endl;
} else {
cout << "Blad. Problemy z plikiem" << endl;
}
string liczby[10];
for (int x = 0; x < 10; x++) {
plik >> liczby[x];
cout << liczby[x] << "\t";
}
cout << endl;
cout << "Lancuchy ktorych suma cyfr jest liczba pierwsza" << endl;
int suma = 0;
int sp = 0;
for (int x = 0; x < 10; x++) {
suma = 0;
sp = 0;
for (int i = 0; i < liczby[x].length(); i++) {
   	liczby[x][i] = liczby[x][i] - '0';
   	suma = suma + liczby[x][i];
}
for (int b = 1; b <= suma; b++) {
   	if (suma % b == 0) {
       	sp = sp + 1;
   	}
}
if (sp == 2) {
   	cout << liczby[x] << "\t";
}
}
cout << endl;

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...