본문 바로가기

예제 모음/정보처리기사-수학

[정보처리기사] 가까운 수 구하기 - C언어 구현 #include #define MAX 5 int main() { int arr[MAX]; int i(0); int inputNum, min(99999999); int d, k(0); //입력 부분 for(i=0 ; i 더보기
[정보처리기사] 배수의 개수와 합 - C언어 구현 //배수의 수와 합을 구함 #include int main() { printf("0을 입력하면 종료\n\n"); while(1) { int sum(0), cnt(0), i; int MUL, MAX; printf("구하려는 배수를 입력 : "); scanf("%d", &MUL); printf("몇까지 구할거임? : "); scanf("%d", &MAX); //0을 입력하면 종료 if(MUL == 0 || MAX == 0) { printf("0을 입력하여 종료함"); return 0; } //MAX 값이 구하려는 배수보다 크면 실행 if(MAX > MUL) { for( i=1 ; i MAX) { printf("ㅡㅡ"); } printf("\n\n\n"); } return 0; } 더보기
[정보처리기사] 최대값, 최소값 구하기 - C언어 구현 //최소, 최대값 구하기 #include #define STUDENT 5 int main() { int nScore, nCount(0), nMinScore(100), nMaxScore(0), nSum, nAvg; int i; for(i=0 ; i nMaxScore) { nMaxScore = nScore; } } printf("\n"); nSum = nMaxScore+nMinScore; nAvg = nSum/2; printf("입력 받은 개수 : %d\n", nCount); printf("최소값 : %d\n", nMinScore); printf("최대값 : %d\n", nMaxScore); printf("최소값, 최대값의 합 : %d\n", nSum); printf("최소값, 최대값의 합의 평균 : %d\.. 더보기
[정보처리기사] 약수 구하기 - C언어 구현 #include #include using namespace std; int main() { int nInput; printf("0을 입력하면 종료\n\n"); while(1) { vector vectorArr; printf("정수를 입력하세요 : "); scanf("%d", &nInput); if(nInput == 0) { return 0; } //약수 구하는 부분, 입력 값에서 /2 하므로써 효율적으로 변함. for( int i=1 ; i 더보기
[정보처리기사] 소인수 분해 - C언어 구현 0을 입력할 때까지 소인수를 구함. #include int main( ) { int i, j; int input, origin; int arr[100]; printf( "0 이하를 입력하면 종료\n\n" ); while( 1 ) { printf( "수를 입력하세요 : " ); scanf( "%d", &input ); if( input 1 ) { if( input%i == 0 ) { input = input/i; arr[j] = i; ++j; } if( input%i != 0 )i++; } //출력 if( origin != 1 ) { printf( "소인수분해 결과 : " ); for( i=0 ; i 더보기
[정보처리기사] 최대 공약수(gcm), 최소공배수(lcm) - C언어 구현 최대 공양수 gcm의 약자는 Greatest Common Measure 최소 공배수 lcm의 약자는 Least Common Multiple #include int gcd( int a, int b ); int lcm( int a, int b ); int main( ) { int su1, su2; printf( "0을 입력하면 종료\n\n" ); while( 1 ) { printf( "두개의 정수 입력 : " ); scanf( "%d%d", &su1, &su2 ); if( su1 == 0 || su2 ==0 )return 0; printf( "GCD( 최대공약수 ): %d\n", gcd( su1, su2 ) ); printf( "LCM( 최소공배수 ): %d\n\n", lcm( su1, su2 ) ); } .. 더보기
[정보처리기사] 소수의 합 - C언어 구현 - 에라토스테네스의 체를 이용한 소수의 합 구하기 1. 에라토스테네스의 체란 2. 에라토스테네스의 체란 에라토스테네스의 체를 이용한 문제는 프로젝트 오일러 사이트에 올라온 문제이기도 하며, 에라토스테네스의 체를 이용 안하고 풀었을 때와 이용 했을 때의 시간 차이는 엄청납니다. 위의 링크 중 위키피디아 내용을 참고해서 소스를 만들었고, 소수 목록을 파일로 출력하여 따로 볼 수 있게 만들었습니다. 파일 저장 경로는 C:\prime.txt 인데, 관리자 계정이 아니거나 UAC가 켜져 있으면 실행하다 오류가 저장이 안되는데, 그럴때는 C드라이브 말고 D드라이브 등으로 경로를 바꿔주고 하면 됩니다. 암튼 에라토스테네스의 체의 핵심은 소수를 찾는게 아니라 소수가 아닌 걸 체로 걸러내고 남은 걸 찾는것입니다. #define MAX2000000 #include int.. 더보기
[정보처리기사] 소수의 합 - C언어 구현 일반적인 방법으로 소수의 합을 구하는 코드인데, 100만이나 200만 범위 내의 소수의 합을 구하려면 너무 느려요 ㅠㅠ 큰 범위 내의 소수의 합을 빠르게 구하고 싶으면 에라토스테네스의 체를 이용하면 됩니다. //1부터 입력한 수까지 소수의 합 #include int prime( int a ); int main( ) { int input; int i; int sum; printf( "0을 입력하면 종료\n\n" ); while(1) { sum = 0; //입력 printf("양의 정수를 입력 : "); scanf( "%d", &input ); if( input==0 )return 0; //입력한 수까지 반복하고, 소수가 리턴되면서 누적 for( i=2 ; i 더보기
[정보처리기사] 소수 판별 - C언어 구현 임의의 수를 입력하면 소수인지 판별해줌 #include int prime( int a ); int main( ) { int input; printf( "0을 입력하면 종료됩니다.\n\n" ); while( 1 ) { printf( "양의 정수를 입력 : " ); scanf( "%d", &input ); if( input==0 )return 0; if( prime(input) == 1 )printf( "%d는(은) 소수 입니다.\n\n", input ); if( prime(input) == 0 )printf( "%d는(은) 소수가 아닙니다.\n\n", input ); } return 0; } int prime( int a ) { int j; for( j=2 ; j 더보기