UVA11461Square Numbers

来源:互联网 发布:linux telnet命令 编辑:程序博客网 时间:2024/06/05 15:15

题意:求a到b区间中,能开尽平方的数,比如,1,4,9,16
思路:智障题目。统计转化为区间。
代码:

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <vector>#define DB puts("**de**")#define WATCH(a) cout << a << endl#define REP(i,n) for(int i=0;i<n;++i)#define FF(i,a,b) for(int i=a;i<=b;++i)#define CL(a,b) memset(a,b,sizeof(a))#define LL long long#define FD(i,a,b) for(int i=a;i>=b;--i)#define pb push_back#define pr pair<int,int >//#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;//constconst int MAXN=1e6+5;const int INF=0x3f3f3f3f;//struct//global//vector<int> edge[MAXN];int ti1,ti2,ti3,n,m,t,ncase;bool vis[1000005];int num[1000005];double td1,td2,td3;char tc1,tc2;//funcint main(){    //freopen("C:\\Users\\inkysakura\\Desktop\\testdata.txt","r",stdin);    for(int i=1;i<=1000;i++)vis[i*i]=1;    for(int i=1;i<=1000000;i++)        if(vis[i])num[i]=num[i-1]+1;else num[i]=num[i-1];    while(scanf("%d %d",&n,&m),n&&m)    {        cout << num[m]-num[n-1]<<endl ;    }    return 0;}
0 0