1 #include <iostream>
2 #include <string.h>
3 #include <string>
4 #include <fstream>
5 #include <algorithm>
6 #include <stdio.h>
7 #include <vector>
8 #include <queue>
9 #include <set>
10 #include <cmath>
11 using namespace std;
12 const double eps = 1e-8;
13 const int INF=0x7fffffff;
14 unsigned long long uINF = ~0LL;
15 #define MAXN 10000007
16 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<<num[i]<<endl;system("pause");
51 }
52 while(scanf("%d%d",&a,&b),a+b!=0)
53 {
54 int sa=sqrt(a);
55 int sb=sqrt(b);
56 //cout<<sa<<' '<<sb<<endl;
57 int ans=sb-sa;
58 if(a==num[sa])ans++;
59 //if(b==num[sb])ans++;
60 printf("%d
",ans);
61 }
62
63 return 0;
64 }
1 #include <iostream>
2 #include <string.h>
3 #include <string>
4 #include <fstream>
5 #include <algorithm>
6 #include <stdio.h>
7 #include <vector>
8 #include <queue>
9 #include <set>
10 #include <cmath>
11 using namespace std;
12 const double eps = 1e-8;
13 const int INF=0x7fffffff;
14 unsigned long long uINF = ~0LL;
15 #define MAXN 10000007
16 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<<num[i]<<endl;system("pause");
51 }
52 while(scanf("%d%d",&a,&b),a+b!=0)
53 {
54 int sa=sqrt(a);
55 int sb=sqrt(b);
56 //cout<<sa<<' '<<sb<<endl;
57 int ans=sb-sa;
58 if(a==num[sa])ans++;
59 //if(b==num[sb])ans++;
60 printf("%d
",ans);
61 }
62
63 return 0;
64 }