ZOJ 3483 简单if-else
提醒:答案要约分,不然会错!
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdio.h> 6 #include<string.h> 7 #include<math.h> 8 using namespace std; 9 const int MAXSIZE = 2000000; 10 int prime[MAXSIZE]; 11 void init_prim(){ 12 for (int i=2;i<MAXSIZE;i++) 13 prime[i]=1; 14 prime[0]=0; prime[1]=0; 15 for (int i=1;i<MAXSIZE;i++){ 16 if (prime[i]==1) 17 for (int j=i*2;j<MAXSIZE;j+=i) 18 prime[j]=0; 19 } 20 } 21 int gcd(int a,int b){ 22 return b==0 ? a : gcd(b,a%b); 23 } 24 int main(){ 25 int t,i,j,x1,x2,y1,y2; 26 int cnt,ans; 27 init_prim(); 28 scanf("%d",&t); 29 while(t--){ 30 cnt = 0; 31 ans = 0; 32 scanf("%d%d%d%d",&x1,&x2,&y1,&y2); 33 for(i=y1;i<=y2;i++){ 34 for(j=x1;j<=x2;j++){ 35 if((i == 0 && j != 0) || (i != 0 && j == 0)) 36 if((abs(i+j)-3) % 4 == 0 && prime[abs(i+j)]) ans++; 37 if(i != 0 && j != 0 && ((i*i + j*j) - 3) % 4 != 0 && prime[i*i + j*j]) 38 ans++; 39 cnt++; 40 } 41 } 42 //if(ans == 0) cnt = 1; 43 printf("%d/%d\n",ans/gcd(ans,cnt),cnt/gcd(ans,cnt)); 44 } 45 return 0; 46 }