1218.cpp

来自「北京大学的一些acm代码。还有一些资料。」· C++ 代码 · 共 55 行

CPP
55
字号

#include<stdio.h>

bool reverse(bool a)
{
	if(a)
		return false;
	else
		return true;
}

int getNum(int n, bool *a)
{
	int count = 0;
	for(int i = 1; i < n+1; i++)
	{
		int j = 1;
		int k = j*i;
		while(k < n+1)
		{
			a[k] = reverse(a[k]);
			j++;
			k = j*i;
		}
	}

	for(i = 1; i < n+1; i++)
	{
		if(a[i])
			count++;
	}
	return count;
}

int main()
{
	int n;
	int *testCase;
	bool *init;
	scanf("%d", &n);
	testCase = new int[n];
	for(int i = 0; i < n; i++)
	{
		scanf("%d", &testCase[i]);
		init = new bool[testCase[i] + 1];
		for(int j = 1; j < testCase[i] + 1; j++)
		{
			init[j] = false;
		}
		printf("%d\n", getNum(testCase[i], init));
		delete []init;
		init = NULL;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?