Uva 10490 - Mr. Azad and his Son!!!
/*
Uva 10490 - Mr. Azad and his Son!!!
Verdict: Accepted
Time : 0.000
==> Perfect Numbers problem. All perfect numbers are prime number. 2^p+1 * (2^p + 1) ; where p is a prime number. But except 11 23 and 29 till 32
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <cmath>
#include <cctype>
#include <sstream>
#include <set>
#include <list>
#include <stack>
#include <queue>
#include <algorithm>
#define sf scanf
#define pf printf
#define sfint scanf ("%d %d",&a,&b)
#define sfl scanf ("%ld %ld",&a,&b)
#define sfll scanf ("%lld %lld",&a,&b)
#define sfd scanf ("%lf %lf",&a,&b)
#define sff scanf ("%f %f",&a,&b)
#define LL long long
#define L long
#define N 32
#define MOD 10000000007
#define pb push_back
#define sz size()
#define gc getchar ()
#define ps push
#define clr clear
#define bn begin()
#define ed end()
using namespace std;
bool flag [N];
int prime [12],len=0;
void sieve ()
{
for (int i=4;i<=N;i+=2)
{
flag[i] = true;
}
//v.push_back(2);
prime[len] = 2; len++;
for (int i=3;i<=N;i+=2)
{
if (!flag[i])
{
//v.push_back(i);
prime[len] = i; len++;
//return false;
}
for (int j=i*i;j<=N;j+=i)
{
flag[j] = true;
}
}
}
int main ()
{
sieve();
//for (int i=0;i<len;i++) cout << prime[i] << " ";
LL n,k,p,t;
while (cin >> n and n!=0)
{
t = n;
if (n == 11 or n == 23 or n == 29)
{
cout << "Given number is prime. But, NO perfect number is available." << endl;
continue;
}
if (!flag[n])
{
k = t-1;
p = pow(2,k) * (pow(2,t) - 1);
cout << "Perfect: " << p <<"!" << endl;
}
else
{
cout << "Given number is NOT prime! NO perfect number is available." << endl;
}
}
return 0;
}
Uva 10490 - Mr. Azad and his Son!!!
Verdict: Accepted
Time : 0.000
==> Perfect Numbers problem. All perfect numbers are prime number. 2^p+1 * (2^p + 1) ; where p is a prime number. But except 11 23 and 29 till 32
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <cmath>
#include <cctype>
#include <sstream>
#include <set>
#include <list>
#include <stack>
#include <queue>
#include <algorithm>
#define sf scanf
#define pf printf
#define sfint scanf ("%d %d",&a,&b)
#define sfl scanf ("%ld %ld",&a,&b)
#define sfll scanf ("%lld %lld",&a,&b)
#define sfd scanf ("%lf %lf",&a,&b)
#define sff scanf ("%f %f",&a,&b)
#define LL long long
#define L long
#define N 32
#define MOD 10000000007
#define pb push_back
#define sz size()
#define gc getchar ()
#define ps push
#define clr clear
#define bn begin()
#define ed end()
using namespace std;
bool flag [N];
int prime [12],len=0;
void sieve ()
{
for (int i=4;i<=N;i+=2)
{
flag[i] = true;
}
//v.push_back(2);
prime[len] = 2; len++;
for (int i=3;i<=N;i+=2)
{
if (!flag[i])
{
//v.push_back(i);
prime[len] = i; len++;
//return false;
}
for (int j=i*i;j<=N;j+=i)
{
flag[j] = true;
}
}
}
int main ()
{
sieve();
//for (int i=0;i<len;i++) cout << prime[i] << " ";
LL n,k,p,t;
while (cin >> n and n!=0)
{
t = n;
if (n == 11 or n == 23 or n == 29)
{
cout << "Given number is prime. But, NO perfect number is available." << endl;
continue;
}
if (!flag[n])
{
k = t-1;
p = pow(2,k) * (pow(2,t) - 1);
cout << "Perfect: " << p <<"!" << endl;
}
else
{
cout << "Given number is NOT prime! NO perfect number is available." << endl;
}
}
return 0;
}
Comments
Post a Comment