#include <iostream>
#include <stdexcept>
using namespace std;
void tekaTekiTeko( unsigned int batas) {
// negative number will wrap around to a very large positive due to unsigned nature
if ( batas < 20 ) throw invalid_argument( "Nilai batas harus lebih besar atau sama dengan 20" ) ;
for ( unsigned int i = 1 ; i <= batas; ++ i) {
if ( i % 2 == 0 && i % 3 == 0 && i % 5 == 0 ) {
cout << "TekaTekiTeko" << endl;
} else if ( i % 2 == 0 && i % 3 == 0 ) {
cout << "TekaTeki" << endl;
} else if ( i % 2 == 0 && i % 5 == 0 ) {
cout << "TekaTeko" << endl;
} else if ( i % 3 == 0 && i % 5 == 0 ) {
cout << "TekiTeko" << endl;
} else if ( i % 2 == 0 ) {
cout << "Teka" << endl;
} else if ( i % 3 == 0 ) {
cout << "Teki" << endl;
} else if ( i % 5 == 0 ) {
cout << "Teko" << endl;
} else {
cout << i << endl;
}
}
}
int main( ) {
unsigned int input;
cout << "Masukkan batas: " ;
cin >> input;
if ( cin .fail ( ) ) {
cerr << "Error: Input bukan unsigned integer." << endl;
return 1 ;
}
try {
tekaTekiTeko( input) ;
} catch ( const invalid_argument& e) {
cerr << "Error: " << e.what ( ) << endl;
return 1 ;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkZXhjZXB0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCB0ZWthVGVraVRla28odW5zaWduZWQgaW50IGJhdGFzKSB7CgkvLyBuZWdhdGl2ZSBudW1iZXIgd2lsbCB3cmFwIGFyb3VuZCB0byBhIHZlcnkgbGFyZ2UgcG9zaXRpdmUgZHVlIHRvIHVuc2lnbmVkIG5hdHVyZQoJCiAgICBpZiAoYmF0YXMgPCAyMCkgdGhyb3cgaW52YWxpZF9hcmd1bWVudCgiTmlsYWkgYmF0YXMgaGFydXMgbGViaWggYmVzYXIgYXRhdSBzYW1hIGRlbmdhbiAyMCIpOwoKICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAxOyBpIDw9IGJhdGFzOyArK2kpIHsKICAgICAgICBpZiAoaSAlIDIgPT0gMCAmJiBpICUgMyA9PSAwICYmIGkgJSA1ID09IDApIHsKICAgICAgICAgICAgY291dCA8PCAiVGVrYVRla2lUZWtvIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSBpZiAoaSAlIDIgPT0gMCAmJiBpICUgMyA9PSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlRla2FUZWtpIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSBpZiAoaSAlIDIgPT0gMCAmJiBpICUgNSA9PSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlRla2FUZWtvIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSBpZiAoaSAlIDMgPT0gMCAmJiBpICUgNSA9PSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlRla2lUZWtvIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSBpZiAoaSAlIDIgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8ICJUZWthIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSBpZiAoaSAlIDMgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8ICJUZWtpIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSBpZiAoaSAlIDUgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8ICJUZWtvIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgaSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICB1bnNpZ25lZCBpbnQgaW5wdXQ7CiAgICBjb3V0IDw8ICJNYXN1a2thbiBiYXRhczogIjsKICAgIGNpbiA+PiBpbnB1dDsKCiAgICBpZiAoY2luLmZhaWwoKSkgewogICAgICAgIGNlcnIgPDwgIkVycm9yOiBJbnB1dCBidWthbiB1bnNpZ25lZCBpbnRlZ2VyLiIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICB0cnkgewogICAgICAgIHRla2FUZWtpVGVrbyhpbnB1dCk7CiAgICB9IGNhdGNoIChjb25zdCBpbnZhbGlkX2FyZ3VtZW50JiBlKSB7CiAgICAgICAgY2VyciA8PCAiRXJyb3I6ICIgPDwgZS53aGF0KCkgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=