Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- bool isValidEGN(const std::string& egn)
- {
- //egn digs
- int x1 = egn[0] - '0';
- int x2 = egn[1] - '0';
- int x3 = egn[2] - '0';
- int x4 = egn[3] - '0';
- int x5 = egn[4] - '0';
- int x6 = egn[5] - '0';
- int x7 = egn[6] - '0';
- int x8 = egn[7] - '0';
- int x9 = egn[8] - '0';
- int x10 = egn[9] - '0';
- //y/m/d
- int year = std::stoi(egn.substr(0, 2));
- int month = std::stoi(egn.substr(2, 2));
- int day = std::stoi(egn.substr(4, 2));
- if (year < 10)
- {
- month += 20;
- }
- else if (year >= 100)
- {
- month += 40;
- }
- //egn check
- if (month < 1 || month > 12 || day < 1 || day > 31)
- {
- return 1;
- }
- int sum = 2 * x1 + 4 * x2 + 8 * x3 + 5 * x4 + 10 * x5 + 9 * x6 + 7 * x7 + 3 * x8 + 6 * x9;
- int remainder = sum % 11;
- if (remainder == 10)
- {
- remainder = 0;
- }
- if (remainder != x10)
- {
- return 1;
- }
- return 0;
- }
- int main()
- {
- string egn;
- // Input egn
- cin >>egn;
- if (egn.length() != 10)
- {
- cout << "Invalid input data!" <<endl;
- return 0;
- }
- if (isValidEGN(egn))
- {
- cout<< 0;
- }
- else
- {
- cout<< 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement