1 / 7
Oct 2022

#include
using namespace std;

int n;
double m;
int main()
{
cin >> n;

for (int i = 0; i < n; i++) {
	
	cin >> m; 
	double u = m / 3;
	double x = m / 2;
	

	if ((m == 1) || (m == 0)) {
		cout << "NIE"<<endl;
	}
	
	 else if ((m == 2) || (m == 3)) {
		cout << "TAK"<<endl;
	
	}
	else if ((x - int(x) == 0) || (u - int(u) == 0)) {
		cout << "NIE"<<endl;
	}
	
	else {
		cout << "TAK"<<endl;
	}

}


return 0;

}

Witam, wie ktoś gdzie tu jest błąd?

  • created

    Oct '22
  • last reply

    Oct '22
  • 6

    replies

  • 440

    views

  • 4

    users

  • 7

    likes

  • 1

    link

Mam dla Ciebie dwie rady:

  1. Skasuj wszystko poza dwoma pierwszymi liniami (niektórzy kazaliby też skasować drugą linię, ale nie bądźmy tak bardzo rygorystyczni) i zacznij swój kod od początku.
  2. Jak chcesz korzystać z pomocy na forum to przeczytaj o zasadach, które tutaj panują.
    https://discuss.spoj.com/t/jesli-zaczynasz-przeczytaj-koniecznie-kliknij-w-to-prosze/34345

Dwa pytania pomocnicze.

  1. Czy wiesz co to są liczby pierwsze? Mam co do tego poważne wątpliwości.

  2. Czy naprawdę rozumiesz co Twój kod robi?
    Np. ta konstrukcja:

else if ((x - int(x) == 0) || (u - int(u) == 0))

jest dla mnie zagadką

@franek23 sprawdzasz, w niefektywny sposób, podzielność liczby tylko przez dwa i trzy.
A czy 25 jest liczbą pierewszą?
A 49?

121
169
itd

Jak widzę “Liczby pierwsze” na forum to już zastanawiam sie jakie nowe “naukowe odkrycia” mnie czekają :smiley: Chyba z 80% postów na ten temat wskazuje że autor nie ma pojęcia na temat liczb pierwszych