链接:https://ac.nowcoder.com/acm/contest/342/A
来源:牛客网
第一行一个整数n。
接下来n行,每行一个数字k,表示一次询问。
输出共n行,每行一个形如"YYYY-MM-DD"的日期表示答案。
1≤n≤106
保证答案存在且答案年份为4位数。
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define Max 11000 6 bool prime[Max]={0}; 7 8 void IsPrime(){ 9 for(int i=2;i*i<Max;i++){ 10 if(prime[i]==0){ 11 for(int j=i*i;j<Max;j+=i){ 12 prime[j]=1; 13 } 14 } 15 } 16 } 17 18 void calprimeryear(vector<int> &vi1){ 19 for(int i=2001;i<=10000;i++){ 20 if(prime[i]==0){ 21 vi1.push_back(i); 22 } 23 } 24 } 25 26 int main() 27 { 28 char vs1[7][7]={"01-10","02-20","03-30","10-01","11-11","12-21"}; 29 vector<int> vi1; 30 IsPrime(); 31 calprimeryear(vi1); 32 int n,k; 33 scanf("%d",&n); 34 while(n--){ 35 scanf("%d",&k); k--; 36 printf("%d-%s\n",vi1[k/6],vs1[k%6]); 37 } 38 return 0; 39 }
原文:https://www.cnblogs.com/TWS-YIFEI/p/10258981.html