#13593: 錯在哪wa:line 84


655161 (nonononononononononononono)


#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;
}
}

#13594: Re:錯在哪wa:line 84


justinO__o (夜貓)


#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

就溢位了

#16337: Re:錯在哪wa:line 84


Eric5993 (EC)


#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;

}