1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 using namespace std;12 const double eps = 1e-8;13 const int INF=0x7fffffff;14 unsigned long long uINF = ~0LL;15 #define MAXN 1000000716 typedef long long LL;17 LL vis[MAXN];18 LL prime[MAXN];19 20 void sieve(LL n)21 {22 LL m=(LL)sqrt(n+0.5);23 memset(vis,0,sizeof(vis));24 for(LL i=2;i<=m;i++)if(!vis[i])25 for(LL j=i*i;j<=n;j+=i)vis[j]=1;26 }27 28 LL gen_prime(LL n)29 {30 sieve(n);31 LL c=0;32 for(LL i=2;i<=n;i++)if(!vis[i])33 prime[c++]=i;34 return c;35 }36 37 LL gcd(LL a,LL b)38 {39 return b==0?a:gcd(b,a%b);40 }41 int num[100001];42 int main()43 {44 int a,b;45 int temp=1;46 memset(num,0,sizeof(num));47 for(LL i=1;i<100001;i++)48 {49 if(i==(LL)(temp*temp)){num[temp++]=i;}50 //cout< <
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 using namespace std;12 const double eps = 1e-8;13 const int INF=0x7fffffff;14 unsigned long long uINF = ~0LL;15 #define MAXN 1000000716 typedef long long LL;17 LL vis[MAXN];18 LL prime[MAXN];19 20 void sieve(LL n)21 {22 LL m=(LL)sqrt(n+0.5);23 memset(vis,0,sizeof(vis));24 for(LL i=2;i<=m;i++)if(!vis[i])25 for(LL j=i*i;j<=n;j+=i)vis[j]=1;26 }27 28 LL gen_prime(LL n)29 {30 sieve(n);31 LL c=0;32 for(LL i=2;i<=n;i++)if(!vis[i])33 prime[c++]=i;34 return c;35 }36 37 LL gcd(LL a,LL b)38 {39 return b==0?a:gcd(b,a%b);40 }41 int num[100001];42 int main()43 {44 int a,b;45 int temp=1;46 memset(num,0,sizeof(num));47 for(LL i=1;i<100001;i++)48 {49 if(i==(LL)(temp*temp)){num[temp++]=i;}50 //cout< <