num 이 입력되면 1 ~ num 각각의 숫자의 약수의 개수를 모두 출력 해 준다.

배수로 더해가면서 계산을 줄여준다.

#include <iostream>
using namespace std;
int cnt[50000] = {0};

int main(int argc, char** argv) {
	int num = 0;
	int i, j;
//	freopen("input.txt", "rt", stdin);
	scanf("%d", &num);
		
	for(i = 1; i <= num; i++)
	{
		for(j =i; j <= num; j += i)
		{
			cnt[j]++;
		}
		printf("%d ", cnt[i]);
	}	
	return 0;
}