Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- void sito(bool tab[])
- {
- int n=1000000;
- tab[0]=true;
- tab[1]=true;
- for(int i=2;i<=sqrt(n);i++)
- {
- if(tab[i]!=1)
- {
- int x=i;
- while(x*i<=n)
- {
- tab[x*i]=true;
- x++;
- }
- }
- }
- }
- void fill(int *tab,bool arr[]){
- int j=0;
- for (int i = 2; i <= 1000000; ++i) {
- if(arr[i]==0){
- tab[j++]=i;
- }
- }
- }
- int isPrimeSum(int n,bool *tab1,int *tab2){
- if(n%2==1){
- if(tab1[n-2]==0){
- return 1;
- }
- else return 0;
- }
- else{
- for (int i = 0; i < n/2; ++i) {
- if(tab1[n-tab2[i]]==0){
- return 1;
- }
- else{
- continue;
- }
- }
- return 0;
- }
- }
- int n;
- bool tab1[1000000];
- int tab2[1000000];
- int main() {
- ios_base::sync_with_stdio(false);
- sito(tab1);
- fill(tab2,tab1);
- while(cin>>n){
- if(n!=0){
- if(isPrimeSum(n,tab1,tab2)) cout<<"T"<<"\n";
- else cout<<"N"<<"\n";
- }
- else{}
- }
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement