Uva 10948 - The primary problem
/*
Uva 10948 - The primary problem
Verdict :: Accepted
Time:: 0.013
*/
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#define sf scanf
#define pf printf
#define N 999999
using namespace std;
bool flag[N];
vector <long long> v;
void prime()
{
long long i,j;
for (i=4;i<=N;i+=2)
{
flag[i] = true;
}
v.push_back(2);
for (i=3;i<=N;i+=2)
{
if (flag[i] == false)
{
v.push_back(i);
}
for (j=i*i;j<=N;j+=i)
{
flag[j] = true;
}
}
}
int main()
{
prime();
bool f = false; long long n;
while (1 == (sf ("%lld",&n)))
{
if (n==0)
{
break;
}
long long i,j,d = n/2,c;
pf ("%lld:\n",n);
for (i=0;i<v.size();i++)
{
if (d>=v[i])
{
c = n-v[i];
if (flag[c] == false)
{
if (v[i]+c == n)
{
pf ("%lld+%lld\n",v[i],c);
f = true;
break;
}
}
}
if (d<v[i])
{
break;
}
}
if (!f)
{
pf ("NO WAY!\n");
}
f = false;
}
return 0;
}
Uva 10948 - The primary problem
Verdict :: Accepted
Time:: 0.013
*/
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#define sf scanf
#define pf printf
#define N 999999
using namespace std;
bool flag[N];
vector <long long> v;
void prime()
{
long long i,j;
for (i=4;i<=N;i+=2)
{
flag[i] = true;
}
v.push_back(2);
for (i=3;i<=N;i+=2)
{
if (flag[i] == false)
{
v.push_back(i);
}
for (j=i*i;j<=N;j+=i)
{
flag[j] = true;
}
}
}
int main()
{
prime();
bool f = false; long long n;
while (1 == (sf ("%lld",&n)))
{
if (n==0)
{
break;
}
long long i,j,d = n/2,c;
pf ("%lld:\n",n);
for (i=0;i<v.size();i++)
{
if (d>=v[i])
{
c = n-v[i];
if (flag[c] == false)
{
if (v[i]+c == n)
{
pf ("%lld+%lld\n",v[i],c);
f = true;
break;
}
}
}
if (d<v[i])
{
break;
}
}
if (!f)
{
pf ("NO WAY!\n");
}
f = false;
}
return 0;
}
Comments
Post a Comment