C++代码:找出给定区间内的特立独行的幸福数
#include\u003Ciostream\u003E\n#include\u003Cvector\u003E\n#include\u003Ccmath\u003E\nusing namespace std;\n\n// 判断一个数是否为素数\nbool isPrime(int num) {\n if (num \u003C 2) {\n return false;\n }\n for (int i = 2; i \u003C= sqrt(num); i++) {\n if (num % i == 0) {\n return false;\n }\n }\n return true;\n}\n\n// 计算一个数的幸福数和独立性\npair\u003Cint, int\u003E calculateHappiness(int num) {\n vector\u003Cint\u003E visited;\n while (num != 1 && find(visited.begin(), visited.end(), num) == visited.end()) {\n visited.push_back(num);\n int sum = 0;\n while (num \u003E 0) {\n int digit = num % 10;\n sum += digit * digit;\n num /= 10;\n }\n num = sum;\n }\n if (num == 1) {\n int happiness = visited.size();\n int independence = isPrime(happiness) ? happiness * 2 : happiness;\n return make_pair(visited[0], independence);\n } else {\n return make_pair(-1, -1);\n }\n}\n\nint main() {\n int A, B;\n cin >> A >> B;\n vector\u003Cpair\u003Cint, int\u003E\u003E happyNumbers;\n for (int i = A; i \u003C= B; i++) {\n pair\u003Cint, int\u003E happiness = calculateHappiness(i);\n if (happiness.first != -1) {\n happyNumbers.push_back(happiness);\n }\n }\n if (happyNumbers.empty()) {\n cout << "SAD" << endl;\n } else {\n for (int i = 0; i \u003C happyNumbers.size(); i++) {\n cout << happyNumbers[i].first << " " << happyNumbers[i].second << endl;\n }\n }\n return 0;\n}
原文地址: https://www.cveoy.top/t/topic/pPAM 著作权归作者所有。请勿转载和采集!