题解:A

A
(a.pas/c/cpp)
【题目描述】
对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) ,
其中每个正整数都能表示成两个质数乘积。
【输入描述】
第一行一个正整数 q,表示询问组数。
接下来 q 行,每行一个正整数 n,表示询问。
【输出描述】
q 行,每行一个正整数,为 0 或 1。0 表示不能,1 表示能。
【输入样例】
5
1
4
5
21
25
【输出样例】
0
1
0
1
1
【样例解释】
4=2*2
21=6+15=2*3+3*5
25=6+9+10=2*3+3*3+2*5
25=4+4+4+4+9=2*2+2*2+2*2+2*2+3*3
【数据范围】
30%的数据满足:q<=20,n<=20
60%的数据满足:q<=10000,n<=5000
100%的数据满足:q<=105,n<=1018

solution:

因为P‘OK’,4‘OK’,所以‘P+4’OK

#include<bits/stdc++.h>
using namespace std;

typedef long long LL;

int q;
LL n;

int rd(){
	int re=0,f=1;char c=getchar();
	while ((c<'0')||(c>'9')) {if (c=='-') f=-f;c=getchar();}
	while ((c>='0')&&(c<='9')) {re=re*10+c-'0';c=getchar();}
	return re*f;
}

int main(){
	freopen("a.in","r",stdin);
	freopen("a.out","w",stdout);
	scanf("%d",&q);
	for (;q>0;--q){
		scanf("%lld",&n);
		if ((n>3ll)&&(n!=5ll)&&(n!=7ll)&&(n!=11ll)) puts("1");else puts("0");
	}
	return 0;
}
posted @ 2019-10-16 15:04  skkyk  阅读(130)  评论(1编辑  收藏  举报