int main() { get_prm(); while (EOF != scanf("%d%d%d", &n, &m, &k)) { np = 0; int t = m; for (int i = 0; i < prm_cnt && prm[i] <= t; ++i) { if (t % prm[i] == 0) { p[np] = 1; while (t % prm[i] == 0) { p[np] *= prm[i]; t /= prm[i]; } ++np; } } nds = 0; for (int i = 1; i <= m; ++i) { if (m % i == 0) { ds[nds].d = i; ds[nds].s = 0; for (int j = 0; j < np; ++j) { if (i % p[j] == 0) ds[nds].s |= 1 << j; } ++nds; } } memset(dp, -1, sizeof(dp)); dp[0][0][0] = 1; printf("%d\n", dfs(k, (1<<np)-1, n)); } return 0; }
/*------------------------------------------------------------ * Function Name : FormateFlash * Description : 用于第一次使用时格式化FLASH * Input : None * Output : None * Return : None *------------------------------------------------------------*/ void FormateFlash( void ) { SetFormateFlashTimeOut(1000); while (GetFormateFlashTimeOut() == TIMEIN) { if (KEY_STOP != get_key(0xffffffff)) { return; } } if (EraseFlashAskHandler() == DISABLE) { return; } SetPage(USER_LOGIN_PAGE); if (FAILED == LoadManagerLogin() ) { lcd_clear(COLOR_BACK); return; } memset(get_pcm(),0x00,PCM_MEM_SIZE); memset(get_prm(),0x00,PRM_MEM_SIZE); memset(get_prv(),0x00,PRV_MEM_SIZE); pHmi->test_standard_index = KYSNJS; //设置默认试验 pHmi->lcd_light_use = 5; //设置默认亮度 pcm_save(); prm_save(); prv_save(); pcm_read(); prm_read(); prv_read(); lcd_clear(COLOR_BACK); }
//格式化FLASH,用于第一次烧录本程序的新板子 void formate_flash( void ) { uint8_t *pStart_addr = NULL; HMI_TypeDef *pPcm = NULL; uint32_t len; if (pHmi->check_flash == 0xff) { if (ask_dialog_box() == DISABLE) { return; } pPcm = pcm_hmi_get(); len = sizeof(PCM_TypeDef); memset(pPcm,0x00,len); //清空FLASH参数区 pStart_addr = get_prm(); memset(pStart_addr,0x00,PRM_MEM_SIZE_2CH); pHmi->test_standard_index = KZSNJS; //设置默认试验 pHmi->lcd_light_use = 5; //设置默认亮度 pcm_save(); prm_save(); prv_save(); pcm_read(); prm_read(); prv_read(); #ifdef ENABLE_BEEP BEEP_RING_WARN(); #endif } }