728x90
반응형
더보기
// 모두의 약수
/*
자연수 N이 입력되면 1부터 N까지의 각 숫자들의 약수의 개수를 출력하는 프로그램을 작성하
세요. 만약 N이 8이 입력된다면 1(1개), 2(2개), 3(2개), 4(3개), 5(2개), 6(4개), 7(2개), 8(4
개) 와 같이 각 숫자의 약수의 개수가 구해집니다. 
출력은 다음과 같이 1부터 차례대로 약수의 개수만 출력하면 됩니다. 
1 2 2 3 2 4 2 4 와 같이 출력한다.

*/

// 입력 설명 
// 첫 번째 줄에 자연수 N(5<=N<=50,000)이 주어진다.

// 출력 설명
// 첫 번째 줄에 1부터 N까지 약수의 개수를 순서대로 출력한다.

# include <stdio.h>

int n[50001]; // n<=50,000

int main(){
	
	int input; // 입력 변수 
	int i,j; // 반복문 사용 변수 
	
	scanf("%d",&input);
	
	for(i=1; i<=input; i++)
	{
		for(j=i; j<=input; j=j+i) 
		{				
			n[j]++;	 // 1부터 시작함.  
		}
	}
	for(i=1; i<=input; i++)
	{
		printf("%d ", n[i]); // n[0]부터 아닌 이유는 1부터 데이터를 넣어서 
	}
	return 0;
	
		
} 

[그림1] 모두의 약수 예제 출력

문제 출처 : 인프런 it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기