Problem D:
Time Limit: 1 Sec Memory Limit: 2 MB
Submit: 18810 Solved: 6776
[Submit][Status][Web Board]
Description
输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n<k<100,且m与n不相等。
Input
输入三个整数,依次为k、m、 n。
Output
从小到大输出符合题意的所有整数,两数之间用一个空格分开。
Sample Input
15 2 3
Sample Output
2 3 4 8 9 10 14 15
HINT
难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int k,m,n,min,i;
scanf("%d %d %d",&k,&m,&n);
min=m<=n?m:n;
printf("%d",min);//单独处理开头
for(i=min+1;i<=k;i++)
{
if((i%m0||i%n0)&&(i%m0&&i%n0)==0)//条件
printf(" %d",i);//中间有空格的输出
}
}