#include<iostream>
using namespace std;
int main(){
long long int a,b,c=0;
while(cin>>a>>b)
{ if(a==0&&b==0){return 0;}
for(int i=1;i<=b;i++)
{
if(a<=i*i&&i*i<=b)c++;
}
cout<<c<<endl;c=0;
}
}
#include
using namespace std;
int main(){
long long int a,b,c=0;
while(cin>>a>>b)
{ if(a==0&&b==0){return 0;}
for(int i=1;i<=b;i++)
{
if(a<=i*i&&i*i<=b)c++;
}
cout<<c<<endl;c=0;
}
}
其實可以
for (int i = 1; i * i <= b; i++)
if (a <= i * i) c++;
然後因為你乘到 i<=b
所以 i 最大到100000
100000 * 100000 > 2 ^ 31 = INTMAX
就溢位了
#include
using namespace std;
int main(){
long long int a,b,c=0;
while(cin>>a>>b)
{ if(a==0&&b==0){return 0;}
for(int i=1;i<=b;i++)
{
if(a<=i*i&&i*i<=b)c++;
}
cout<<c<<endl;c=0;
}
}
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n;
int a,b;
while(cin>>a>>b)
{
int c=0;
if(a==0 || b==0)break;
for(int i=1;i*i<=b;i++)
{
if(a<=i*i)
c++;
}
printf("%d\n",c);
}
return 0;
}