Een EG-nummer is, net zoals een CAS-nummer, een uniek identificatienummer dat wordt toegewezen aan chemische stoffen die commercieel beschikbaar zijn binnen de Europese Unie. Deze nummers worden sinds 1 januari 1993 toegekend door het in Italië gevestigde European Chemicals Bureau (ECB). De lijst van alle chemische stoffen waaraan een EG-nummer werd toegekend wordt de EC Inventory genoemd, en deze lijst wordt verder opgesplitst in volgende categorieën:
De European Inventory of Existing Commercial Chemical Substances (EINECS) is een lijst van chemische stoffen, polymeren niet in acht genomen, die commercieel beschikbaar waren binnen de EU vanaf 1 januari 1971 tot en met 18 september 1981. Het identificatienummer van dergelijke stoffen wordt een EINECS nummer genoemd. EINECS nummers starten vanaf 200-001-8 (formaldehyde). Dit is meteen ook het kleinst mogelijke EG-nummer.
De European List of Notified Chemical Substances (ELINCS) is een lijst van chemische stoffen die commercieel beschikbaar werden binnen de EU na 18 september 1981. Het identificatienummer van dergelijke stoffen wordt een ELINCS nummer genoemd. ELINCS nummers starten vanaf 400-010-9 (commerciële naam: indosol yellow SF-2RL).
In april 1992 werd de definitie van polymeren gewijzigd. Dit betekende dat chemische stoffen die voorheen beschouwd werden als polymeren niet langer werden uitgesloten uit de EU wetgeving. Als gevolg daarvan werd een lijst van "No-longer Polymers"" (NLP) opgesteld, die chemische stoffen bevat die commercieel beschikbaar werden tussen 18 september 1981 en 31 oktober 1993. Het identificatienummer van dergelijke stoffen wordt een NLP nummer genoemd. NLP nummers starten vanaf 500-001-0 (2-methylpropene, trimers).
Een EG-nummer bestaat uit een zevencijferige code die wordt weergegeven als $$C_1C_2C_3-C_4C_5C_6-R$$. Hierbij stelt $$R$$ een controlecijfer voor en stelt elke $$C_i$$ ($$1\leq i\leq 6$$) een cijfer voor. Het controlecijfer wordt berekend volgens de ISBN methode. Volgens deze methode moet het controlecijfer gelijk zijn aan de rest na deling door 11 van de volgende som: \[ C_1 + 2\times C_2 + 3\times C_3 + 4\times C_4 + 5 \times C_5 + 6\times C_6 \] Bijgevolg is 200-003-9 een geldig EG-nummer, aangezien \[ 2+2\times 0+3\times 0+4\times 0+5\times 0+6\times 3=20=1\times 11+9 \] Als de rest $$R$$ gelijk is aan 10, dan wordt deze combinatie van cijfers niet gebruikt als EG-nummer.
Op de eerste regel van de invoer staat een natuurlijk getal t dat het aantal testgevallen beschrijft. Op de t volgende regels bevindt zich telkens een string die moet doorgaan voor een EG-nummer.
Schrijf voor elk testgeval een regel tekst naar de uitvoer met daarop het EG-nummer zoals gegeven op de invoer en één van de volgende vermeldingen naargelang het type: EINECS nummer, ELINCS nummer, NLP nummer of ongeldig nummer. Beide moeten van elkaar gescheiden worden door één enkele spatie. Een testgeval is ongeldig als aan minstens één van volgende voorwaarden voldaan is:
het heeft niet de vorm CCC-CCC-R
de rest $$R$$ is gelijk aan 10
de rest $$R$$ verschilt van het controlecijfer
het getal CCCCCCR is kleiner dan het kleinste EG-nummer
Probeer het aantal en de uitdrukking van de voorwaarden die moeten getest worden om het resultaat te bepalen zo beknopt mogelijk te houden.
Invoer:
5
245-261-3
245-261-4
400-010-09
400-x10-9
abc
Uitvoer:
245-261-3 EINECS nummer
245-261-4 ongeldig nummer
400-010-09 ongeldig nummer
400-x10-9 ongeldig nummer
abc ongeldig nummer