题目描述
给你三个数,n,m1,m2,找出所有小于n的能被m1或m2整除的数的个数。
输入
输入包含多组测试数据,每组数据占一行。
0<n<2^31,0<m1,m2<=10。
输出
每组数据输出占一行。
样例输入
12 2 3
样例输出
7
提示:不能用for那样时间会超限;
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,i,b,c,j,d,k;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{ i=a/b;
j=a/c;
d=i+j;
k=a/(b*c);//剔除重复的;
d=d-k;
if(a%b==0)
d--;//剔除端点的
if(a%c==0)
d--;
if(a%(b*c)==0)
d++;
printf("%d\n",d);
}
return 0;
}
#include <stdlib.h>
int main()
{
int a,i,b,c,j,d,k;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{ i=a/b;
j=a/c;
d=i+j;
k=a/(b*c);//剔除重复的;
d=d-k;
if(a%b==0)
d--;//剔除端点的
if(a%c==0)
d--;
if(a%(b*c)==0)
d++;
printf("%d\n",d);
}
return 0;
}