# Uvod u algoritme kvadratni i trougaoni broj

**URL:** <https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001>\
**Category:** Algoritam\
**Created:** [January 23, 2018, 8:14pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001 "2018-01-23T20:14:45Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![nikolasda](https://algora.petlja.org/user_avatar/algora.petlja.org/nikolasda/32/207_2.png) [@nikolasda](https://algora.petlja.org/u/nikolasda)\
**Post date:** [January 23, 2018, 8:14pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/1 "2018-01-23T20:14:45Z")

</div>

[https://petlja.org/BubbleBee/r/Problems/KvadratITrougao](https://petlja.org/BubbleBee/r/Problems/KvadratITrougao)

Uradio sam zadatak i proverio resenje u code blocks ali mi za svaki test primer stoji da je odgovor pogresan.Da li neko mozda zna sta bi moglo biti u pitanju?

using namespace std;  
int trougaoni(int n)  
{

```
int zbir=0,i;
for(i=1;i<=n/4+1;i++){
    zbir+=i;
    if(zbir==n)return 1;

}
return 0;

```

}  
int kvadrat(int n)  
{  
if(sqrt(n)\*sqrt(n)==n)return 1;  
else return 0;  
}

int main()  
{  
int n,i;  
cin \>\> n;  
for(i=2;i\<=n;i++)if(trougaoni(i)&&kvadrat(i))cout \<\< i \<\< " ";  
return 0;  
}

---

<div class="post-metadata">

**Author:** ![TheProxy](https://algora.petlja.org/letter_avatar_proxy/v4/letter/t/8c91f0/32.png) [@TheProxy](https://algora.petlja.org/u/TheProxy)\
**Post date:** [January 23, 2018, 8:37pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/2 "2018-01-23T20:37:13Z")

</div>

Probaj umesto  
`cout << i << " "`  
da stavis  
`cout << i << endl`

---

<div class="post-metadata">

**Author:** ![mushisgosuuu](https://algora.petlja.org/user_avatar/algora.petlja.org/mushisgosuuu/32/663_2.png) [@mushisgosuuu](https://algora.petlja.org/u/mushisgosuuu)\
**Post date:** [January 23, 2018, 8:59pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/3 "2018-01-23T20:59:55Z")

</div>

N je veliko da bi radio sve ovo. Ne znam da li dobijas TLE? Iskoristi ovo: suma od 1 do k je k\*(k+1)/2 tako da ides od 1 do nekog broja tako da je k\*(k+1)/2 \<=n i proveris da li je k\*(k+1)/2 potpun kvadrat

---

<div class="post-metadata">

**Author:** ![igzi](https://algora.petlja.org/user_avatar/algora.petlja.org/igzi/32/421_2.png) [@igzi](https://algora.petlja.org/u/igzi)\
**Post date:** [January 23, 2018, 9:17pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/4 "2018-01-23T21:17:13Z")

</div>

> [@nikolasda](#):
>
> int kvadrat(int n)
> 
> {
> 
> if(sqrt(n)\*sqrt(n)==n)return 1;
> 
> else return 0;
> 
> }

Mislim da je ovde problem. Ako sam u pravu funkcija treba da proveri da li je n potpun kvadrat ali je moguce da sqrt(n)\*sqrt(n)==n cak i kada n nije potpun kvadrat. Razlog zasto je tebi delovalo da ovo radi je zbog gubitka preciznosti cesce ce se desavati da funkcija vrati 0 ako broj nije potpun kvadrat mada to nece uvek biti slucaj.

---

<div class="post-metadata">

**Author:** ![Nenad421](https://algora.petlja.org/user_avatar/algora.petlja.org/nenad421/32/1277_2.png) [@Nenad421](https://algora.petlja.org/u/Nenad421)\
**Post date:** [January 23, 2018, 9:40pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/5 "2018-01-23T21:40:06Z")

</div>

Samo pazi, ako je n manje od 36 onda moras da stampas: cout \<\< " "; inace ces dobiti RTE  
A mushi i igzi su ti rekli sta su ti greske

---

<div class="post-metadata">

**Author:** ![nikolasda](https://algora.petlja.org/user_avatar/algora.petlja.org/nikolasda/32/207_2.png) [@nikolasda](https://algora.petlja.org/u/nikolasda)\
**Post date:** [January 23, 2018, 10:05pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/6 "2018-01-23T22:05:58Z")

</div>

Hvala na pomoci sad je ok.

---

<div class="post-metadata">

**Author:** ![Sprdalo](https://algora.petlja.org/user_avatar/algora.petlja.org/sprdalo/32/421_2.png) [@Sprdalo](https://algora.petlja.org/u/Sprdalo)\
**Post date:** [January 23, 2018, 10:07pm UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/7 "2018-01-23T22:07:03Z")

</div>

Preporucujem “\n”, jer endl i pored toga sto radi new line on flush-uje tekst, sto je nepotrebno i usporava program.

---

<div class="post-metadata">

**Author:** ![duxon27](https://algora.petlja.org/user_avatar/algora.petlja.org/duxon27/32/780_2.png) [@duxon27](https://algora.petlja.org/u/duxon27)\
**Post date:** [April 27, 2021, 9:35am UTC](https://algora.petlja.org/t/uvod-u-algoritme-kvadratni-i-trougaoni-broj/1001/8 "2021-04-27T09:35:56Z")

</div>

Probaj umesto sqrt(n)_sqrt(n)==n da pises  
for(int j=2;j_j\<=n;j++)  
{  
if(j\*j==n)return 1;  
}  
return 0;  
Ovaj nacin je bolji jer ne mozes izgubiti preciznost, sve se radi s celim brojevima.
