提交时间:2026-06-19 15:43:13
运行 ID: 91913
#include <iostream> #include <cmath> using namespace std; // 判断一个大数是否是素数 bool isPrime(long long x) { if (x < 2) return false; if (x == 2) return true; if (x % 2 == 0) return false; for (long long i = 3; i * i <= x; i += 2) { if (x % i == 0) return false; } return true; } // 判断某年某月某日是否合法 bool isValid(int y, int m, int d) { if (m < 1 || m > 12) return false; if (d < 1) return false; int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // 闰年判断 if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) days[2] = 29; return d <= days[m]; } int main() { // 遍历 1988 和 1989 两年 for (int year = 1988; year <= 1989; ++year) { for (int month = 1; month <= 12; ++month) { for (int day = 1; day <= 31; ++day) { if (!isValid(year, month, day)) continue; // 拼成 8 位数字:YYYYMMDD long long num = year * 10000LL + month * 100LL + day; if (isPrime(num)) { printf("%04d%02d%02d\n", year, month, day); } } } } return 0; }