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
",ans/gcd(ans,cnt),cnt/gcd(ans,cnt));
44     }
45     return 0;
46 }
原文地址:https://www.cnblogs.com/wushuaiyi/p/3657367.html