메뉴 건너뛰기

app

[c] 소수 여부 판별하는 프로그램

박영식2009.06.20 00:48조회 수 4912댓글 0

  • 2
    • 글자 크기

php서버 연동하여, 실행시켜 보았다. 

c코드는 아래와 같다

/*
 ============================================================================
 Name : yy.c
 Author : su
 Version :
 Copyright : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/* 이 소스코드는 입력받은 숫자가 소수인지 아닌지를 판별하는
역할을 한다. Dev-C++ 에서 작성되었음. */ 

int main(int argc, char *argv[])
{
  int i, n, limit, stop;
  
  // 루프를 돌면서 숫자를 받자
  while(1) {
   
  // 입력받기
// printf("인자 수는 %d, %d n",argc,atoi(argv[1]));
  n = atoi(argv[1]);

  // 유효범위 테스트
  if(n < 2 || n > 100000) {
  printf("Please input right number!");
  break;
  }

  // 입력받은 수에 루트를 씌운 값으로 나눠서 소수 여부를 판별해도 된다.
  // 이건 수학자들이 밝혀낸 것임. 일단 루트 씌운 값부터 알아내서 정수형으로 저장하자.
  limit = (int)sqrt(n);

  // 루트씌운 값부터 마이너스를 계속 하면서 루프를 돈다.
  // 만약 소수라면, 그 루트씌운 값 (limit) 이 1이 될 때까지 한번도 나눠서 0 이 되는 일은
  // 없을 것이다. 아니라면, 도중에 탈출하게 된다.
  for(i=limit; i>1; i--) {
  if(n % i == 0)
  break;
  }

  // 위의 루프를 끝까지 돌면서 도중하차 하지 않은 경우가 소수인 경우다.
  if(i == 1)
  printf("%d is prime number!", n);
  else
  printf("%d is not prime number! division : %d", n, i);

  break;
  }
  
  // 종료 처리 
  //system("PAUSE");  
  return 0;
}

php코드는 아래와 같다.(prime.php)

<?php
// header('Content-Type: text/plain; charset=UTF-8');
 if($n){
  $output = shell_exec('경로primes.exe '.$n);
  echo iconv("euc-kr","utf-8",$output);
 }else{
  echo "please input number!";
 }
?>

http://archi.ssu.ac.kr/prime/ 에서 test 해볼 수 있다.(ajax 호출로 prime.php를 로딩함)


prime.jpg

박영식 (비회원)
  • 2
    • 글자 크기
[c] line 수 세는 프로그램 (by 박영식) [거리] 유클리드거리(Euclidean distance), 맨하탄 거리(Manhattan distance) (by 박영식)

댓글 달기

박영식
2010.09.09 조회 4787
박영식
2010.05.25 조회 4089
박영식
2010.01.14 조회 4968
박영식
2009.09.21 조회 4145
박영식
2008.08.18 조회 6060
박영식
2008.08.17 조회 4192
박영식
2008.07.24 조회 4621
박영식
2008.07.23 조회 7997
박영식
2008.07.22 조회 3346
박영식
2008.04.11 조회 2198
박영식
2008.01.20 조회 2038
박영식
2007.12.23 조회 3222
첨부 (2)
prime.jpg
11.7KB / Download 61
yy3.exe
20.4KB / Download 64
위로