【CodeForces - 870C】
题意:
计算一个整数最多可以拆分为多少个合数(要求拆分的全是合数)。例如:12的拆分法案是12=4+4+4。
合数是指除了1之外的非素数(正整数)。
思路:
偶数的话用4、6就可以满足,奇数的话减去一个9就成偶数了。
#include <bits/stdc++.h> using namespace std; map<int, int >M; const int N = 1e5+3; int a[N]; int main() { int t, n; cin>>t; while(t--) { int ans = 0; scanf("%d", &n); if(n == 9) ans++; if(n & 1 && n - 9 >= 4) { ans ++; n -= 9; } if(!(n & 1)) ans += n / 4; printf("%d\n", ans == 0 ? -1 : ans); } return 0; }