void test01 ( int32_t argc, char * argv[] ) { //pr_t x = 10123457689, y; pr_t x = 1023456789, y; //pr_t x = 9814072356, y; //pr_t x = 10000004797, y; if ( 2==argc ) { x = strtol(argv[1],NULL,10); } if ( is_prime(x) ) { info_print("%llu is a prime",x); } else { info_print("%llu is not prime",x); } if ( is_pan(x) ) { info_print("%llu is a pandigital",x); } else { info_print("%llu is a not pandigital",x); } return; }
int main(int argc, char* argv[]) { int d8d9d10; long long int sum = 0; int d[10]; for (d8d9d10 = 17; d8d9d10 < 1000; d8d9d10 += 17) { d[9] = d8d9d10 % 10; d[8] = (d8d9d10 / 10) % 10; d[7] = (d8d9d10 / 100) % 10; for (d[6] = 0; d[6] < 10; d[6]++) if ((100*d[6]+10*d[7]+d[8]) % 13 == 0) for (d[5] = 0; d[5] < 10; d[5]++) if ((100*d[5]+10*d[6]+d[7]) % 11 == 0) for (d[4] = 0; d[4] < 10; d[4]++) if ((100*d[4]+10*d[5]+d[6]) % 7 == 0) for (d[3] = 0; d[3] < 10; d[3]++) if ((100*d[3]+10*d[4]+d[5]) % 5 == 0) for (d[2] = 0; d[2] < 10; d[2]++) if ((100*d[2]+10*d[3]+d[4]) % 3 == 0) for (d[1] = 0; d[1] < 10; d[1]++) if ((100*d[1]+10*d[2]+d[3]) % 2 == 0) for (d[0] = 0; d[0] < 10; d[0]++) { int i; long long int l = 0; for (i=0; i<10; i++) l = d[i] + l * 10; if (is_pan(l)) { sum += l; } } } printf("%lli\n", sum); return 0; }