codeforce440C-Maximum splitting-规律题
Posted ckxkexing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforce440C-Maximum splitting-规律题相关的知识,希望对你有一定的参考价值。
题意:问一个数最多可以变成几个合数的和;
思路:
时刻提醒自己再看到题目的时候的所作所为,该找规律找规律,想什么ksm,质数判断开根号。
除了1、2、3、5、7、11外,其余的数都可以通过4,6,9获得,所以只要用x对4取余,结果为1或3,ans都要减1;
(1、3-->9 ; 2-->6 )
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <vector> #include <map> #include <set> #include <queue> #include <list> #include <iterator> #include <cmath> using namespace std; typedef long long ll; int n,k; ll x; int main(){ scanf("%d", &n); for(int i=1; i<=n; i++) { scanf("%lld", &x); int ans = x/4; int tmp = x%4; if(x==1||x==2||x==3||x==5||x==7||x==11) { puts("-1"); continue; } if(tmp==3||tmp==1)ans--; printf("%d\n",ans); } return 0; }
以上是关于codeforce440C-Maximum splitting-规律题的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #440 (Div. 2)ABCE
Codeforces Round #440 (Div. 2)(ABC)