728x90
반응형

코드

더보기
# include <stdio.h> 
/*  문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
    만들어진 자연수와 그 자연수의 약수 개수를 출력합니다.
	 만약 "fsaknf0012lsaf"에서 숫자만 추출하면 0,0,1,2고 이것을 자연수로 만들면 12가 됩니다.
	 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 12를 출력하고, 다음 줄에 12의 약수의 개수를 출력하면 됩니다.
	 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. 
*/
int main(){
	char a[100];
	int res = 0, cnt = 0, i;
	scanf("%s", &a);
	for(i = 0; a[i]!='\0'; i++)
	{
		if(a[i]>=48 && a[i]<=57)
		{
			res = res * 10 + (a[i]-48);
		}
	}
	printf("자연수 : %d\n",res);
	for(i = 1; i<=res; i++)
	{
		if(res%i ==0)
			cnt++;
	}
	printf("약수의 개수 : %d\n",cnt);
	return 0;
}

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

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