문제 해결 방법 :


(a.pas / C / CPP)는
[제목] 설명
A는 양의 정수, 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 = 15 + 6 = 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 *
[데이터 범위]
30 % 데이터 만족한다 : Q는 <= 20이고, n - <= 20 인
데이터 만족 60 % Q <= 10000, N- <5000 =
100 데이터 만족의 % Q <= 10 ^ 5 N <= 10 ^ 18

해결책:

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;
}

추천

출처www.cnblogs.com/skkyk/p/11685593.html