題解: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<=10^5,n<=10^18c++

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;
}
相關文章
相關標籤/搜索