not ac

填个空

 1 /**
 2 
 3 (a,b) = 质素
 4 a [1,A]   b [1 ,B];
 5 
 6 **/
 7 
 8 #include<iostream>
 9 #include<cstring>
10 #include<cstdlib>
11 #include<stdio.h>
12 using namespace std;
13 typedef __int64 LL;
14 
15 const int N = 1e5+5;
16 bool vis[N];
17 int p[N];
18 int cnt;
19 int g[N],u[N],sum[N];
20 
21 void init()
22 {
23     memset(vis,0,sizeof(vis));
24     u[1] = 1;
25     cnt = 0;
26     for(int i=2;i<N;i++)
27     {
28         if(!vis[i])
29         {
30             p[cnt++]=i;
31             u[i] = -1;
32             g[i] = 1;
33         }
34         for(int j=0;j<cnt&&i*p[j]<N;j++)
35         {
36             vis[i*p[j]] = 1;
37             if(i%p[j])
38             {
39                 u[i*p[j]] = -u[i];
40                 g[i*p[j]] = u[i] - g[i];
41             }
42             else
43             {
44                 u[i*p[j]] = 0;
45                 g[ i*p[j]] = u[i];
46                 break;
47             }
48         }
49     }
50     sum[0] = 0;
51     for(int i=1;i<N;i++)
52         sum[i] = sum[i-1]+g[i];
53 }
54 LL slove(int A,int B)
55 {
56     if(A>B) swap(A,B);
57     LL ans =0;
58     for(int i=1,last; i<=A;i=last+1)
59     {
60         last = min(A/(A/i) , B/(B/i));
61         ans = ans + (A/i)*(B/i)*(sum[last]-sum[i-1]);
62     }
63     return ans;
64 }
65 int main()
66 {
67     return 0;
68 }
View Code

 

posted @ 2014-03-18 19:06  芷水  阅读(145)  评论(0编辑  收藏  举报