Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- void Inverseaza(int v[], int lgv)
- {
- int i, aux;
- for(i=0;i<lgv/2;i++)
- {
- aux = v[i];
- v[i] = v[lgv-i-1];
- v[lgv-i-1] = aux;
- }
- }
- void TransformaInBaza2(unsigned long long x, int *lgv,int v[])
- {
- int ind, rest;
- ind=0;
- while(x!=0)
- {
- rest = x%2;
- v[ind] = rest;
- ind++;
- x = x/2;
- }
- (*lgv) = ind;
- Inverseaza(v, ind);
- }
- bool VerificaPutere2(int n)
- {
- int p=1;
- while(p<n)
- {
- p=p*2;
- }
- if(p!=n)
- return 0;
- else return 1;
- }
- int simpatic(unsigned long long x)
- {
- int v[100], lgv;
- TransformaInBaza2(x,&lgv, v);
- int suma=0, i;
- for(i=0;i<lgv;i++)
- suma=suma+v[i];
- return VerificaPutere2(suma);
- }
- int main()
- {
- unsigned long long x;
- scanf("%llu", &x);
- printf("%d", simpatic(x));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement