Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1. /* Zadatak 40:
  2. Napiˇsite program koji uˇcitava prirodne brojeve n, k i bazu b ≥ 2. Program treba ispisati sve prirodne brojeve manje ili
  3. jednake n, koji se mogu prikazati kao suma k-tih potencija svih svojih znamenki u bazi b.
  4. Na primjer, za k = 3 i b = 10, jedan takav broj je 153 = 1^3 + 5^3 + 3^3. Uoˇcite da se broj 1 uvijek moˇze prikazati na opisani
  5. naˇcin, u bilo kojoj bazi b i za bilo koji k. */
  6.  
  7. #include <stdio.h>
  8. int pot(int i, int b, int k){
  9.     int zn, broj = 0, x;
  10.     x = i;
  11.     while(i){
  12.         zn = i % b;
  13.         broj += pow(zn, k);
  14.         i /= b;
  15.     }
  16.     if (broj == x) return 0;
  17.     else return 1;
  18. }
  19. int main(void){
  20.     int n, b, k, i;
  21.     printf ("ucitaj prirodni broj n: ");
  22.     scanf ("%d",&n);
  23.     printf ("ucitaj bazu: ");
  24.     scanf ("%d",&b);
  25.     printf ("ucitaj k: ");
  26.     scanf ("%d",&k);
  27.     if (b <2 ){
  28.         printf("Niste ucitali dobar broj!");
  29.         return 1;
  30.     }
  31.  
  32.     for(i = 1; i <= n; i++){
  33.         if (pot(i,b,k)==0) printf("%d,",i);
  34.     }
  35.     printf("takvi su brojevi.");
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement