Programozó versenyek

DEIK Regionális Programozó Csapatverseny, egyetemi/főiskolai kategória, 2015. november 29.

2015. november 29. 10:40 – 2015. november 29. 15:40

Azad úr és a fia

Sok Abul Kalam Azad nevű ember él Bangladesben. Vajon ő miért olyan különleges? Ennek az oka nem csak az, hogy ő az apám. Csodálatosan tud elvégezni bizonyos számításokat. Ha valaki mond neki egy k pozitív egész számot, elképesztő módon, számológép vagy számítógép használata nélkül meg tudja mondani a k-val relatív tökéletes számot: 2k – 1(2k – 1). (A tökéletes szám egy olyan pozitív egész szám, amely egyenlő a valódi pozitív osztóinak az összegével, azaz az összes pozitív osztójának az összegével, kivéve magát a számot.) Ha például megkérem, hogy mondja meg a 2-vel relatív tökéletes számot, akkor a válasza 6, amely tényleg egy tökéletes szám. Egy tetszőleges egész számmal relatív tökéletes szám azonban nem mindig létezik. Megkérdeztem tőle a folyamatot, de azt mondta, magamtól kell rájönnöm, mi a kapcsolat egy egész szám és a vele relatív tökéletes szám között. Mindenesetre kihívtam egy versenyre, mert én ugyanezt a számítást számítógép segítségével végezhetem. Bár azt nem tudom, hogyan csinálja, azt tudom, hogy nyakunkon a következő ACM Online Programozó Verseny, és a világ legjobb programozói állnak rendelkezésemre, hogy megoldják ezt a nagyon egyszerű problémámat.

Írj egy programot, amely segít legyőzni az apámat! A programnak egy n egész számot kell beolvasnia, és meg kell határoznia p-t, a vele relatív tökéletes számot.

A bemenet specifikációja

A bemenet minden sora egy n egész számot tartalmaz (1 < n ≤ 31). A bemenetet egy olyan sor zárja, amelyben a 0 szám szerepel. Ezt a sort nem kell feldolgozni.

A kimenet specifikációja

A kimenet formátuma minden bemeneti sor esetén a következő:

  • Ha létezik az n-nel relatív tökéletes szám, akkor a „Perfect: p!” szöveget kell kiírni.
  • Ha nem létezik az n-nel relatív tökéletes szám, és n prím, akkor a „Given number is prime. But, NO perfect number is available.” szöveget kell kiírni.
  • Ha nem létezik az n-nel relatív tökéletes szám, és n nem prím, akkor a „Given number is NOT prime! NO perfect number is available.” szöveget kell kiírni.

Példa bemenet

  1. 2
  2. 3
  3. 6
  4. 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Perfect: 6!
  2. Perfect: 28!
  3. Given number is NOT prime! NO perfect number is available.
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.