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
반응형
최근댓글