正整数のゲーデル数化?
Posted feedbacks - C
n を 10 桁までに限定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdlib.h>
#include <stdio.h>
#include <math.h>
int goedel( int n ){
static int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};
char buf[11];
char *dk = buf;
int *pk = prime;
int result = 1;
snprintf(dk,11,"%d",n);
while(*dk){
result *= pow( *pk++, *dk++ -'0' );
}
return result;
}
void main ( void ){
printf("%d\n", goedel(9));
printf("%d\n", goedel(81));
printf("%d\n", goedel(230));
}
|


nobsun
#4420()
Rating2/2=1.00
see: ゲーデル数
[ reply ]