种萝卜 (30分)

在山的那边,海的那边住一群勤劳又爱喝酒的兔子,总共有x个兔子。 五月的第一天,他们商量种萝卜,结果第二天他们在地里挖了n个坑。 那天晚上,他们为了即将种下的萝卜搞了一个趴体,结果所有的兔子喝的烂醉如泥。 第三天早上,第1只兔子醒过来,它把所有坑都种上了萝卜,然后去睡觉了。 第四天早上,第2只兔子才醒过来,它把所有是2的倍数的坑进行了“相反操作”(种上萝卜填埋好的坑挖开,挖好坑的种上萝卜又填埋回去); 第五天早上,第3只兔子,它把所有是3的倍数的坑进行了“相反操作”; … 最后,地里总共有多少个坑是种好萝卜填埋回去的。

输入格式:
第一行是两个正整数x和n 1 ≤ x ≤n ≤10000

输出格式:
输出最后地里有多少个坑种上了萝卜又填埋回去的。

输入样例:
2 10000

输出样例:
5000
注:这道题数据很水,直接暴力就过了

#include<iostream>
#include<algorithm>
using namespace std;
int a[1000005];
int main ()
{
	int n,m,ans=0;
	scanf("%d %d",&n,&m);
	for(int i=2;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(j%i==0){
				if(a[j]==0)
				a[j]=1;
				else
				a[j]=0;
			}
		}
	}
	for(int i=1;i<=m;i++){
		if(!a[i])
		ans++;
	}
	printf("%d\n",ans);
 } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章