| Prethodna tema :: Sljedeća tema   | 
	
	
	
		| Autor/ica | 
		Poruka | 
	
	
		napolitanka Forumaš(ica)
  
 
  Pridružen/a: 11. 10. 2014. (07:50:24) Postovi: (A)16 
 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		napolitanka Forumaš(ica)
  
 
  Pridružen/a: 11. 10. 2014. (07:50:24) Postovi: (A)16 
 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		napolitanka Forumaš(ica)
  
 
  Pridružen/a: 11. 10. 2014. (07:50:24) Postovi: (A)16 
 
		 | 
		
			
				 Postano: 12:44 ned, 14. 12. 2014    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         Može još jedno pitanje (isti zadatak), piše mi da mi je program netočan za input -38, ali ja ne znam što mi je točno krivo pa ako mi netko može pomoći?
 
 [code:1]#include <stdio.h>
 
 int sumad (int n)
 {
     int i,test,suma=0,x;
     x=n;
 
     if(x==0) test=0;
     else test=1;
 
     do {
             for (i=2;i<=x;i++)
                 {
                     if(x%i==0)
                         {
                             suma+=i;
                             test*=i;
                             x/=i;
                             break;
                         }
                 }
     } while(test!=n);
 
     return suma;
 }
 
 int abso(int x)
 {
     if (x<0) x*=-1;
     return x;
 }
 
 int main(void)
 {
     int n;
 
     scanf("%d",&n);
     if (n<1)
     {
         while (n<=1)
         {
              if (n==0) {n++; continue;}
              printf("%d\n",sumad( abso(n) ) );
              n++;
         }
     }
     else
     {
         while (n>=1)
         {
 
             printf("%d ",sumad(n));
             n--;
         }
     }
 
     return 0;
 }
 [/code:1] 
					
					Može još jedno pitanje (isti zadatak), piše mi da mi je program netočan za input -38, ali ja ne znam što mi je točno krivo pa ako mi netko može pomoći?
 
 
 	  | Kod: | 	 		  #include <stdio.h>
 
 
int sumad (int n)
 
{
 
    int i,test,suma=0,x;
 
    x=n;
 
 
    if(x==0) test=0;
 
    else test=1;
 
 
    do {
 
            for (i=2;i<=x;i++)
 
                {
 
                    if(x%i==0)
 
                        {
 
                            suma+=i;
 
                            test*=i;
 
                            x/=i;
 
                            break;
 
                        }
 
                }
 
    } while(test!=n);
 
 
    return suma;
 
}
 
 
int abso(int x)
 
{
 
    if (x<0) x*=-1;
 
    return x;
 
}
 
 
int main(void)
 
{
 
    int n;
 
 
    scanf("%d",&n);
 
    if (n<1)
 
    {
 
        while (n<=1)
 
        {
 
             if (n==0) {n++; continue;}
 
             printf("%d\n",sumad( abso(n) ) );
 
             n++;
 
        }
 
    }
 
    else
 
    {
 
        while (n>=1)
 
        {
 
 
            printf("%d ",sumad(n));
 
            n--;
 
        }
 
    }
 
 
    return 0;
 
}
 
 | 	  
					
 
  
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		
			
				 Postano: 13:44 ned, 14. 12. 2014    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         U zadatku pise "ispisuje sumu" (ne "sume"), dakle jednu jedinu sumu. Tebi ce se [tt]printf[/tt] ispisati za skoro svaki broj izmedju 1 i [tt]n[/tt].
 
 Usput, petlja u [tt]sumad[/tt] je jako lose napisana. Ako ispadne da je, recimo, 17 prosti faktor u [tt]n[/tt], ti prekidas petlju i opet provjeravas za sve [tt]i[/tt] od 2 nadalje. I tako za svaki prosti faktor, onoliko puta kolika mu je kratnost.
 
 Pogledaj u vjezbama kako se vade prosti faktori broja. To je solidno koristan algoritam. 
					
					U zadatku pise "ispisuje sumu" (ne "sume"), dakle jednu jedinu sumu. Tebi ce se printf ispisati za skoro svaki broj izmedju 1 i n.
 
 
Usput, petlja u sumad je jako lose napisana. Ako ispadne da je, recimo, 17 prosti faktor u n, ti prekidas petlju i opet provjeravas za sve i od 2 nadalje. I tako za svaki prosti faktor, onoliko puta kolika mu je kratnost.
 
 
Pogledaj u vjezbama kako se vade prosti faktori broja. To je solidno koristan algoritam.
					_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
 
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.   
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		napolitanka Forumaš(ica)
  
 
  Pridružen/a: 11. 10. 2014. (07:50:24) Postovi: (A)16 
 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		 |