hpu(acm)大賽第
阿新 • • 發佈:2019-02-19
特殊的比賽日期
時間限制: 1 Sec 記憶體限制: 128 MB題目描述
KK今天參加河南理工大學ACM程式設計競賽,他發現今天是11月29號,剛好11和29都是素數(只能被1和自己本身整除的數叫做素數),於是他想知道今年(2015年)的某天之前(不含當天)一共有多少天是月份和天數都是素數。
輸入
第一行輸入一個整數t(1<t<366),代表t組測試資料。
接下來每行輸入一個日期,僅包含(月份和天數),格式形如(yy-dd)。
輸入時保證日期全部屬於合法日期。
輸出
輸入yy-dd天之前有多少天的日期同時滿足yy和dd同時為素數。
樣例輸入
3 2-2 2-5 2-15
樣例輸出
0 2 6
//注意幾個特殊的地方就行了
#include<cstdio> #include<cstring> #include<cmath> int fun(int s) { int k=0; for (int i=2;i<s;i++) { if (s%i==0) k++; } if(!k) return 1; else return 0; } int main() { int m,y,d,n; int a[14]={0,0,9,11,0,11,0,11,0,0,0,10,0}; scanf ("%d",&n); while (n--) { long long sum=0,summ=0; scanf ("%d-%d",&y,&d); if ((y<=0&&d<=0)||(y==2&&d>28)) break; else { for (int i=2;i<y;i++) { if (fun(i)) sum+=a[i]; } if (y==2||y==3||y==5||y==7||y==11) { for (int j=2;j<d;j++) { if (fun(j)) summ++; } } printf ("%lld\n",sum+summ); } } return 0; }