Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Zennith/source: Difference between revisions

From ZeroWiki
imported>Unknown
No edit summary
 
(Repair batch-0008 pages from live compare)
 
Line 27: Line 27:
  int i, j, flag, arr_p, tmp;
  int i, j, flag, arr_p, tmp;
   
   
  int arr[10000] = {0, };
  int arr[10000] = {0, };
   
   
  time_t start, end;
  time_t start, end;
Line 33: Line 33:
  start = clock();
  start = clock();
 
 
  arr[0] = 2;
  arr[0] = 2;
  arr_p = 1;
  arr_p = 1;
   
   
  for (i = 3; i < MAX_PRIME; i += 2) {
  for (i = 3; i < MAX_PRIME; i += 2) {
  for (j = 0, flag = 1, tmp = i >> 1; tmp >= arr[j]; j++) {
  for (j = 0, flag = 1, tmp = i >> 1; tmp >= arr[j]; j++) {
  if (i % arr[j] == 0) {
  if (i % arr[j] == 0) {
  flag = 0;
  flag = 0;
  break;
  break;
Line 45: Line 45:
   
   
  if (flag) {
  if (flag) {
  arr[arr_p] = i;
  arr[arr_p] = i;
  arr_p++;
  arr_p++;
  }
  }
Line 54: Line 54:
  end = clock();
  end = clock();
   
   
  while (arr[i] != 0)
  while (arr[i] != 0)
  printf("%d ", arr[i++]);
  printf("%d ", arr[i++]);
 
 
  printf("\n%f\n", (double)(end - start) / CLK_TCK);
  printf("\n%f\n", (double)(end - start) / CLK_TCK);
Line 76: Line 76:


이 컴비네이션 함수.. 제대로 푼건지 확신이 안가는군요. 6c3 같은거로 테스트 해보면 제대로 돌아가는 거 같은데요.
이 컴비네이션 함수.. 제대로 푼건지 확신이 안가는군요. 6c3 같은거로 테스트 해보면 제대로 돌아가는 거 같은데요.

Latest revision as of 01:40, 27 March 2026

계승 구하기

/* fac.c */
#include <stdio.h>

int main(void) {
	int num;
	unsigned long int fac = 1;
	
	printf("Enter Number : ");
	scanf("%d", &num);

	do fac *= num; while (--num);
	
	printf("%u\n", fac);

	return 0;
}

소수 구하기

/* prime2.c */
#include <stdio.h>
#include <time.h>

#define MAX_PRIME 50000

int main(void) {
	int i, j, flag, arr_p, tmp;

	int arr[10000] = {0, };

	time_t start, end;
	
	start = clock();
	
	arr[0] = 2;
	arr_p = 1;

	for (i = 3; i < MAX_PRIME; i += 2) {
		for (j = 0, flag = 1, tmp = i >> 1; tmp >= arr[j]; j++) {
			if (i % arr[j] == 0) {
				flag = 0;
				break;
			}
		}

		if (flag) {
			arr[arr_p] = i;
			arr_p++;
		}
	}
	
	i = 0;

	end = clock();

	while (arr[i] != 0)
		printf("%d ", arr[i++]);
	
	printf("\n%f\n", (double)(end - start) / CLK_TCK);

	return 0;
}

컴비네이션

int factorial(int arg) {
	return arg <= 1 ? 1 : arg * factorial(arg - 1);
}

int permutation(int arg1, int arg2) {
	return arg2 == 0 ? 1 : arg1 * permutation(arg1 - 1, arg2 - 1);
}

int combination(int arg1, int arg2) {
	return permutation(arg1, arg2) / factorial(arg2);
}

이 컴비네이션 함수.. 제대로 푼건지 확신이 안가는군요. 6c3 같은거로 테스트 해보면 제대로 돌아가는 거 같은데요.