main() { int x, y, temp, sumPandigital=0; int check[10] = {-2,1,20,300,4000,50000,600000,7000000,80000000,900000000}; int *doubleCheck = calloc(100000000, 1); for(x=0;x<10000;x++) { for(y=0;y<10000;y++) { temp = x*y; if(Digits(x) + Digits(y) + Digits(temp) == 9) { if(CheckPandigital(x,y,temp, check)) { if(!doubleCheck[temp]){ sumPandigital+=temp; doubleCheck[temp] = 1; } } } } } printf("%d\n", sumPandigital); }
void BM_DecodePi(benchmark::State& state) { // NOLINT(runtime/references) bool correct = true; state.PauseTiming(); std::vector<uint8_t> input_digits = Digits(); std::vector<uint8_t> expected_bytes = Bytes(); state.ResumeTiming(); while (state.KeepRunning()) { HexDecode(&state, &correct, input_digits, expected_bytes); } std::stringstream ss; ss << correct; state.SetLabel(ss.str()); }
int main(int argc, char **argv) { struct GModule *module; int DoMap, DoFilter, MapSeed; G_gisinit(argv[0]); module = G_define_module(); G_add_keyword(_("raster")); G_add_keyword(_("random")); G_add_keyword(_("surface")); module->description = _("Generates random surface(s) with spatial dependence."); Output = G_define_option(); Output->key = "output"; Output->type = TYPE_STRING; Output->required = YES; Output->multiple = YES; Output->description = _("Name for output raster map(s)"); Output->gisprompt = "new,cell,raster"; Distance = G_define_option(); Distance->key = "distance"; Distance->type = TYPE_DOUBLE; Distance->required = NO; Distance->multiple = NO; Distance->description = _("Maximum distance of spatial correlation (value >= 0.0)"); Distance->answer = "0.0"; Exponent = G_define_option(); Exponent->key = "exponent"; Exponent->type = TYPE_DOUBLE; Exponent->multiple = NO; Exponent->required = NO; Exponent->description = _("Distance decay exponent (value > 0.0)"); Exponent->answer = "1.0"; Weight = G_define_option(); Weight->key = "flat"; Weight->type = TYPE_DOUBLE; Weight->multiple = NO; Weight->required = NO; Weight->description = _("Distance filter remains flat before beginning exponent"); Weight->answer = "0.0"; SeedStuff = G_define_option(); SeedStuff->key = "seed"; SeedStuff->type = TYPE_INTEGER; SeedStuff->required = NO; SeedStuff->description = _("Random seed (SEED_MIN >= value >= SEED_MAX), default [random]"); range_high_stuff = G_define_option(); range_high_stuff->key = "high"; range_high_stuff->type = TYPE_INTEGER; range_high_stuff->required = NO; range_high_stuff->description = _("Maximum cell value of distribution"); range_high_stuff->answer = "255"; Uniform = G_define_flag(); Uniform->key = 'u'; Uniform->description = _("Uniformly distributed cell values"); if (G_parser(argc, argv)) exit(EXIT_FAILURE); Init(); if (Uniform->answer) GenNorm(); CalcSD(); for (DoMap = 0; DoMap < NumMaps; DoMap++) { OutFD = Rast_open_c_new(OutNames[DoMap]); G_message(_("Generating raster map <%s>..."), OutNames[DoMap]); if (Seeds[DoMap] == SEED_MIN - 1) Seeds[DoMap] = (int)(ran1() * SEED_MAX); MapSeed = Seed = Seeds[DoMap]; ZeroMapCells(); for (DoFilter = 0; DoFilter < NumFilters; DoFilter++) { CopyFilter(&Filter, AllFilters[DoFilter]); G_debug(1, "Starting filter #%d, distance: %.*lf, exponent: %.*lf, flat: %.*lf", DoFilter, Digits(2.0 * Filter.MaxDist, 6), 2.0 * Filter.MaxDist, Digits(1.0 / Filter.Exp, 6), 1.0 / Filter.Exp, Digits(Filter.Mult, 6), Filter.Mult); MakeBigF(); CalcSurface(); } SaveMap(DoMap, MapSeed); } G_done_msg(" "); exit(EXIT_SUCCESS); }