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를 로딩함)
댓글 달기