메뉴 건너뛰기

app

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

박영식2009.06.20 00:48조회 수 4724댓글 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 박영식)

댓글 달기

이전 1 ... 4 5 6 7 8 9 10 11 12 13 14다음
첨부 (2)
prime.jpg
11.7KB / Download 45
yy3.exe
20.4KB / Download 48
위로