Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
maaajčiii Forumaš(ica)
Pridružen/a: 05. 01. 2011. (12:11:11) Postovi: (2D)16
|
Postano: 12:19 sri, 5. 1. 2011 Naslov: 4.zadaća složenije petlje |
|
|
imam još jedan koji ne valja, ovo je zadatak:
Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 19; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.
moje rješenje:
#include <stdio.h>
int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}
int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);
for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if (sumica<suma(x[j])) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;
sumica=suma(x[i]);
}
if (sumica=suma(x[j])) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;}
}}
for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}
zahvaljujem unaprijed!
imam još jedan koji ne valja, ovo je zadatak:
Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 19; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.
moje rješenje:
#include <stdio.h>
int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}
int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);
for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if (sumica<suma(x[j])) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;
sumica=suma(x[i]);
}
if (sumica=suma(x[j])) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;}
}}
for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}
zahvaljujem unaprijed!
Zadnja promjena: maaajčiii; 19:24 sri, 5. 1. 2011; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
maaajčiii Forumaš(ica)
Pridružen/a: 05. 01. 2011. (12:11:11) Postovi: (2D)16
|
Postano: 13:34 sri, 5. 1. 2011 Naslov: |
|
|
još jedan zadatak:
Napišite program koji učitava prirodni broj n<131, te niz od n cijelih brojeva. Program treba pronaći najveći element niza djeljiv s 6, te u originalnom poretku ispisati indekse onih elementa niza kojima je prva znamenka jedna od znamenki pronađenog maksimuma.
Ako traženi maksimum ne postoji, program ne smije ništa ispisati. Ispisane brojeve odvojite razmacima.
rješenje koje ne valja:
#include <stdio.h>
#include <math.h>
int main (void)
{
int n,i,j,p=0,znam,prvaznam,max,x[131],noviniz[100];
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);
max=0;
for (i=n-1;i>=0;i--)
if (x[i]%6==0) max=x[i];
for (i=0;i<n;i++) {
if ((x[i]%6==0) && (x[i]>max)) max=x[i]; }
if (max==0) return 0;
while (max!=0) {
znam=max%10;
max=max/10;
noviniz[p]=abs(znam);
p++; }
for (i=0;i<n;i++) {
while(x[i]!=0) {
prvaznam=x[i]%10;
x[i]=x[i]/10; }
for (j=0;j<p;j++) {
if (abs(prvaznam)==abs(noviniz[j])) { printf("%d ",i); break;} }
}
return 0;
}
još jedan zadatak:
Napišite program koji učitava prirodni broj n<131, te niz od n cijelih brojeva. Program treba pronaći najveći element niza djeljiv s 6, te u originalnom poretku ispisati indekse onih elementa niza kojima je prva znamenka jedna od znamenki pronađenog maksimuma.
Ako traženi maksimum ne postoji, program ne smije ništa ispisati. Ispisane brojeve odvojite razmacima.
rješenje koje ne valja:
#include <stdio.h>
#include <math.h>
int main (void)
{
int n,i,j,p=0,znam,prvaznam,max,x[131],noviniz[100];
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);
max=0;
for (i=n-1;i>=0;i–)
if (x[i]%6==0) max=x[i];
for (i=0;i<n;i++) {
if ((x[i]%6==0) && (x[i]>max)) max=x[i]; }
if (max==0) return 0;
while (max!=0) {
znam=max%10;
max=max/10;
noviniz[p]=abs(znam);
p++; }
for (i=0;i<n;i++) {
while(x[i]!=0) {
prvaznam=x[i]%10;
x[i]=x[i]/10; }
for (j=0;j<p;j++) {
if (abs(prvaznam)==abs(noviniz[j])) { printf("%d ",i); break;} }
}
return 0;
}
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 19:41 sri, 5. 1. 2011 Naslov: |
|
|
Iznimno odgovaram (vidi moj sig) jer imam 10ak minuta za utuci.
Prvi: zanemarila si "ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način".
Drugi: sto ako je najveci broj u nizu djeljiv sa 6 jednak nuli? Dodatno, ako niz sadrzi nulu, [tt]prvaznam[/tt] ce ostati izracunata od prethodnog broja.
Preporucam zaviriti u mail s izvjestajem od zadace. Tamo pisu primjeri na kojima programi padnu.
Iznimno odgovaram (vidi moj sig) jer imam 10ak minuta za utuci.
Prvi: zanemarila si "ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način".
Drugi: sto ako je najveci broj u nizu djeljiv sa 6 jednak nuli? Dodatno, ako niz sadrzi nulu, prvaznam ce ostati izracunata od prethodnog broja.
Preporucam zaviriti u mail s izvjestajem od zadace. Tamo pisu primjeri na kojima programi padnu.
_________________ 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] |
|
Lepi91 Forumaš(ica)
Pridružen/a: 15. 09. 2010. (15:22:23) Postovi: (C8)16
Spol:
|
Postano: 22:40 sri, 5. 1. 2011 Naslov: imam i ja jedan :( |
|
|
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i -25 (uključivo).
#include<stdio.h>
int prost(int x)
{
int i,p;
p=1;
for (i=2; i<x; i++)
if (x%i==0) p=0;
if (x==1) p=0;
return p;
}
int main()
{
int n,i,l,max,s;
scanf("%d",&n);
max=25;
s=0;
if (abs(n)>max) max=abs(n);
for (l=2; l<=max; l++)
if (prost(l)){
if (n<=-25)
for(i=n; i<=-25; i++)
if (i%l==0) {
s+=l;
break;
}
if (-25<n)
for (i=-25; i<=n; i++)
if (i%l==0){
s+=l;
break;
}
}
printf("%d",s);
scanf("%%");
return 0;
}
zadaca ga nece priznat kaj je krivo? :cry:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i -25 (uključivo).
#include<stdio.h>
int prost(int x)
{
int i,p;
p=1;
for (i=2; i<x; i++)
if (x%i==0) p=0;
if (x==1) p=0;
return p;
}
int main()
{
int n,i,l,max,s;
scanf("%d",&n);
max=25;
s=0;
if (abs(n)>max) max=abs(n);
for (l=2; l<=max; l++)
if (prost(l)){
if (n<=-25)
for(i=n; i<=-25; i++)
if (i%l==0) {
s+=l;
break;
}
if (-25<n)
for (i=-25; i<=n; i++)
if (i%l==0){
s+=l;
break;
}
}
printf("%d",s);
scanf("%%");
return 0;
}
zadaca ga nece priznat kaj je krivo?
_________________ tko rano rani,malo spava
|
|
[Vrh] |
|
pbakic Forumaš(ica)
Pridružen/a: 05. 10. 2009. (17:48:30) Postovi: (143)16
Spol:
|
Postano: 2:10 čet, 6. 1. 2011 Naslov: |
|
|
Ima par stvari koje se daju ispravit:
Ides s vanjskom petljom po svim prostim djeliteljima, a zatim za svaki
broj u zadanom intervalu provjeravas je li djeljiv s prostim.
Uoci sto ce se dogoditi ako primjenimo tvoj kod:
Uzmemo neki prost broj, npr 2.
Sad idemo po svim brojevima iz intervala, i cim naletimo na prvi djeljiv s 2, dodamo 2 u sumu i izlazimo iz petlje (break), nakon cega prelazimo na sljedeci prost broj.
Ovakvim pristupom svaki prost broj pribrojit cemo sumi najvise jednom, a vjerojatno bi ga trebalo pribrojiti puno vise puta.
Za [b]svaki[/b] broj u intervalu moramo zbrojiti sve njegove proste djelitelje, [b]uvazavajuci kratnost[/b].
To znaci, ako unesemo -24, tj. interval je [-25,-24]:
-25=-5*5 => u sumu dodajemo 5+5=10
-24=-2*2*2*3 => u sumu dodajemo 2+2+2+3=9
U svakom slucaju, treba maknuti sve "break" naredbe - time cemo dozvoliti da se za svaki broj u intervalu provjeri je li djeljiv s trenutnim prostim (tj. necemo izaci cim nadjemo prvi djeljiv s prostim)
Cak i kada smo maknuli break, nismo gotovi, ne racunamo koliko puta je trenutni broj djeljiv s prostim.
Zato bi trebali umjesto oba ifa "if (i%l==0)" staviti
for(pom=i; pom!=0 && pom%l==0; pom/=l) s+=l;
Ima par stvari koje se daju ispravit:
Ides s vanjskom petljom po svim prostim djeliteljima, a zatim za svaki
broj u zadanom intervalu provjeravas je li djeljiv s prostim.
Uoci sto ce se dogoditi ako primjenimo tvoj kod:
Uzmemo neki prost broj, npr 2.
Sad idemo po svim brojevima iz intervala, i cim naletimo na prvi djeljiv s 2, dodamo 2 u sumu i izlazimo iz petlje (break), nakon cega prelazimo na sljedeci prost broj.
Ovakvim pristupom svaki prost broj pribrojit cemo sumi najvise jednom, a vjerojatno bi ga trebalo pribrojiti puno vise puta.
Za svaki broj u intervalu moramo zbrojiti sve njegove proste djelitelje, uvazavajuci kratnost.
To znaci, ako unesemo -24, tj. interval je [-25,-24]:
-25=-5*5 ⇒ u sumu dodajemo 5+5=10
-24=-2*2*2*3 ⇒ u sumu dodajemo 2+2+2+3=9
U svakom slucaju, treba maknuti sve "break" naredbe - time cemo dozvoliti da se za svaki broj u intervalu provjeri je li djeljiv s trenutnim prostim (tj. necemo izaci cim nadjemo prvi djeljiv s prostim)
Cak i kada smo maknuli break, nismo gotovi, ne racunamo koliko puta je trenutni broj djeljiv s prostim.
Zato bi trebali umjesto oba ifa "if (i%l==0)" staviti
for(pom=i; pom!=0 && pom%l==0; pom/=l) s+=l;
|
|
[Vrh] |
|
maaajčiii Forumaš(ica)
Pridružen/a: 05. 01. 2011. (12:11:11) Postovi: (2D)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:06 sub, 8. 1. 2011 Naslov: |
|
|
Sort po dva kriterija radi se ovako:
[code:1]for(i...)
for(j...)
if (prvi_kriterij(x[i]) < prvi_kriterij(x[j]) ||
(prvi_kriterij(x[i]) == prvi_kriterij(x[j]) && drugi_kritrij(x[i]) < drugi_kritrij(x[j])) {
zamjena x[i] i x[j]
}[/code:1]
Broj 25 se u bazi 19 pise 16, dakle suma je 7. Broj 16 se pise G. Ne brkati ta dva broja (znamenke 1,6 i zmanenku 16 (tj. G)).
Kao u binarnom sustavu: broj 3 je 11, a ne B (sto bi valjda bilo 11).
Sort po dva kriterija radi se ovako:
Kod: | for(i...)
for(j...)
if (prvi_kriterij(x[i]) < prvi_kriterij(x[j]) ||
(prvi_kriterij(x[i]) == prvi_kriterij(x[j]) && drugi_kritrij(x[i]) < drugi_kritrij(x[j])) {
zamjena x[i] i x[j]
} |
Broj 25 se u bazi 19 pise 16, dakle suma je 7. Broj 16 se pise G. Ne brkati ta dva broja (znamenke 1,6 i zmanenku 16 (tj. G)).
Kao u binarnom sustavu: broj 3 je 11, a ne B (sto bi valjda bilo 11).
_________________ 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] |
|
maaajčiii Forumaš(ica)
Pridružen/a: 05. 01. 2011. (12:11:11) Postovi: (2D)16
|
Postano: 23:26 sub, 8. 1. 2011 Naslov: |
|
|
možda sam ja krivo shvatila zadatak...nikako mi ne uspijeva. ovak mi izgleda nakon šta sam prepravila,ali i dalje nije dobro:
[code:1]
#include <stdio.h>
int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}
int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);
for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if ((sumica<suma(x[j])) || ((sumica == suma(x[j])) && ((x[i]) < (x[j])))) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;
sumica=suma(x[i]);
}
}}
for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}
[/code:1]
možda sam ja krivo shvatila zadatak...nikako mi ne uspijeva. ovak mi izgleda nakon šta sam prepravila,ali i dalje nije dobro:
Kod: |
#include <stdio.h>
int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}
int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);
for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if ((sumica<suma(x[j])) || ((sumica == suma(x[j])) && ((x[i]) < (x[j])))) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;
sumica=suma(x[i]);
}
}}
for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
maaajčiii Forumaš(ica)
Pridružen/a: 05. 01. 2011. (12:11:11) Postovi: (2D)16
|
|
[Vrh] |
|
ON Forumaš(ica)
Pridružen/a: 09. 02. 2010. (19:31:10) Postovi: (D)16
Spol:
|
Postano: 20:08 pon, 10. 1. 2011 Naslov: |
|
|
imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!
#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);
if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i<=b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }
if(djel==1) { printf("%d ", i);
br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
[size=9][color=#999999]Added after 7 minutes:[/color][/size]
imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!
#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);
if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i<=b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }
if(djel==1) { printf("%d ", i);
br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!
#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);
if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i⇐b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }
if(djel==1) { printf("%d ", i);
br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
Added after 7 minutes:
imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!
#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);
if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i⇐b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }
if(djel==1) { printf("%d ", i);
br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
ON Forumaš(ica)
Pridružen/a: 09. 02. 2010. (19:31:10) Postovi: (D)16
Spol:
|
Postano: 12:16 sri, 12. 1. 2011 Naslov: |
|
|
riješim se otog dijela ali tad nijsu uključeni a i b u ispis ,,,i opet mi ga ne prihvaća ,,u ispisu mi trebaju biti i a i b i određeni brojevi koji zadovoljavaju kriterija ,,zanima me jel tu treba uključiti još koju inicijalizaciju ili kako već ,,,
riješim se otog dijela ali tad nijsu uključeni a i b u ispis ,,,i opet mi ga ne prihvaća ,,u ispisu mi trebaju biti i a i b i određeni brojevi koji zadovoljavaju kriterija ,,zanima me jel tu treba uključiti još koju inicijalizaciju ili kako već ,,,
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
smrtTrokutima Forumaš(ica)
Pridružen/a: 30. 12. 2010. (13:47:58) Postovi: (7)16
Spol:
|
Postano: 21:49 sub, 15. 1. 2011 Naslov: |
|
|
ako neko ima vremena zamolila bi da mi pogleda ovaj programčić... Javlja mi da je greška za 46, pa sam išla to ručno računati i isto je ko i sa programom... dakle, mislim a je točan... ali...
Zadatak 4:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i 32 (uključivo).
[code:1]
#include<stdio.h>
int main()
{
int n, S = 0, i, a, x;
scanf("%d", &n);
if(n < 32)
for(i = n; i <= 32; i++)
{
a = i;
x = 2;
while(a > 1)
{
while(!(a % x))
{
S = S + x;
a = a / x;
}
x++;
}
}
else
for(i = 32; i <= n; i++)
{
a = i;
x = 2;
while(a > 1)
{
while(!(a % x))
{
S = S + x;
a = a / x;
}
x++;
}
}
printf("%d", S);
return 0;
}
[/code:1]
Zanemarite, ispravljeno je... :D
ako neko ima vremena zamolila bi da mi pogleda ovaj programčić... Javlja mi da je greška za 46, pa sam išla to ručno računati i isto je ko i sa programom... dakle, mislim a je točan... ali...
Zadatak 4:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i 32 (uključivo).
Kod: |
#include<stdio.h>
int main()
{
int n, S = 0, i, a, x;
scanf("%d", &n);
if(n < 32)
for(i = n; i <= 32; i++)
{
a = i;
x = 2;
while(a > 1)
{
while(!(a % x))
{
S = S + x;
a = a / x;
}
x++;
}
}
else
for(i = 32; i <= n; i++)
{
a = i;
x = 2;
while(a > 1)
{
while(!(a % x))
{
S = S + x;
a = a / x;
}
x++;
}
}
printf("%d", S);
return 0;
}
|
Zanemarite, ispravljeno je...
|
|
[Vrh] |
|
crazy Forumaš(ica)
Pridružen/a: 13. 06. 2010. (19:06:23) Postovi: (16)16
|
Postano: 18:26 pon, 17. 1. 2011 Naslov: |
|
|
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve oblika 5*4^i-3 koji
se nalaze između a i b (bez a i b). Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema,
program ispisuje poruku "Nema takvih brojeva."
#include<stdio.h>
int main(void)
{
int a,b,pot=1,t,max,min,br=0;
scanf("%d %d",&a, &b);
if(a>b) {t=a;a=b;b=t;}
min=(a+1)/5;
max=(b+1)/5;
if(a!=b)
{
while(pot<=min)
pot*=4;
while(pot>min && pot<max)
{
printf("%d ",5*pot-3);
pot*=4;
br++;
}
}
if(br==0)
printf("Nema takvih brojeva.");
return 0;
}
za npr 1 i 80, program mi ispisuje mi 2 i 17, a trebalo bi i 77.. moze ispravak?? (ak nije bed doslovan, jer sam puno putat slala ovaj zad) hvalaa :o
[size=9][color=#999999]Added after 10 minutes:[/color][/size]
**min=(a+3)/5;
max=(b+3)/5;
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve oblika 5*4^i-3 koji
se nalaze između a i b (bez a i b). Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema,
program ispisuje poruku "Nema takvih brojeva."
#include<stdio.h>
int main(void)
{
int a,b,pot=1,t,max,min,br=0;
scanf("%d %d",&a, &b);
if(a>b) {t=a;a=b;b=t;}
min=(a+1)/5;
max=(b+1)/5;
if(a!=b)
{
while(pot⇐min)
pot*=4;
while(pot>min && pot<max)
{
printf("%d ",5*pot-3);
pot*=4;
br++;
}
}
if(br==0)
printf("Nema takvih brojeva.");
return 0;
}
za npr 1 i 80, program mi ispisuje mi 2 i 17, a trebalo bi i 77.. moze ispravak?? (ak nije bed doslovan, jer sam puno putat slala ovaj zad) hvalaa
Added after 10 minutes:
**min=(a+3)/5;
max=(b+3)/5;
|
|
[Vrh] |
|
crazy Forumaš(ica)
Pridružen/a: 13. 06. 2010. (19:06:23) Postovi: (16)16
|
|
[Vrh] |
|
akolak Forumaš(ica)
Pridružen/a: 27. 12. 2010. (16:52:59) Postovi: (1D)16
|
|
[Vrh] |
|
fejky Forumaš(ica)
Pridružen/a: 23. 06. 2010. (16:53:45) Postovi: (3D)16
Spol:
|
|
[Vrh] |
|
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
|
[Vrh] |
|
|