hdu 5104 Primes Problem(prime 将三重循环化两重)

//宁用大量的二维不用量小的三维

#include <iostream>

#include<cstdio>

#include<cstring>

using namespace std;

int prime[1000],num[10005];

int Cout;

void initPrime()

{

    for(int i=2;i<=10000;i++) num[i]=1;

    for(int i=2;i<=10000;i++)

    {

        if(num[i])

        {

            for(int j=2*i;j<=10000;j+=i)

            {

                num[j]=0;

            }

        }

    }

}

int main()

{

    initPrime();

    int n;

    int i,j,k,cn;

    while(cin>>n)

    {

        cn=0;

        for(i=2;i<=n;i++)

            for(j=i;j<=(n-i)/2;j++)

                if(num[i]&&num[j]&&num[n-i-j])

                    cn++;

        cout<<cn<<endl;

    }

    return 0;

}

 

你可能感兴趣的:(Prim)