http://acm.hdu.edu.cn/showproblem.php?pid=2089
#include<stdio.h>
#include<string.h>#include<math.h>
#include<ctype.h>
#define N 1000000
int a[N];
int main()
{
int n,m;
int i;
int sum;
void cmp(int i);
for(i=1;i<=N;i++)//先将1--N在不吉利数字标记出来,以后使用只需在特定区间遍历
{
cmp(i);
}
while(scanf("%d%d",&n,&m),m+n)
{
sum=0;
for(i=n;i<=m;i++)
{
if(a[i])
sum++;
}
printf("%d\n",m-n+1-sum);
}
return 0;
}
void cmp(int i)
{
int t=i;
int lap=0;
while(t)
{
if(t%10==4||(t%100==62))//个位等于4或(个位求余等于2对十位等于6)
{
lap=1;
break;
}
else
t/=10;
}
a[i]=lap;
}