Potzrebuję pilnie pomocy, nie mam pojęcia co jeszcze jest źle w tym kodzie.
Program ma wuszukiwać z ciągu liczb od 1 do k liczby doskonałe. Niby wszystko działa tylko jest problem z jedną liczbą, a konkretnie z 24. Nie jest ona doskonałą przez ten programik wyświetlana. Potrzebne na już.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<math.h>
int i;
int suma;
int j;
int k;
main()
{
cout<<"\t program zsumuje liczby, ktore sa podzielne przez 3 lub 5 \n";
cout<<"\t \tjednakze nie podzielne przez 15 \n";
cout<<"podaj liczbe\n";
cin>>k;
for (i=2; i<=k; i++)
{
for (j=1; j<=i; j++)
{
if(i%j==0)
{
suma=suma+j;
if (suma==i)
{
cout<<" "<<i;
}
}
}
suma=0;
}
puts(" ");
cout<<"liczby doskonale z ciagu to ";
puts(" ");
puts("\n Nacisnij klawisz aby zakonczyc ");
getchar();
}
Aha i jeszcze jedno pytanie (bo trochę pomocy miałem ale to mnie męczy. Dlaczego musiałem te IF połączyć ze sobą? przy wyszukiwaniu z ciągu liczb pierwszych program w taki sposób nie działał poprawnie a ten nie działa jak przy pierwszych. Jest ktoś mi to w stanie wyjaśnić?
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
1. Zainstaluj jakiegoś linuxa, np Ubuntu
2. Zainstaluj porządne srodowisko do programowania np. CodeBlocks (jest wersja pod Win)
3. Nie mieszaj cout, z printf
4. Używaj tabów zamiast spacjii
5. Liczba doskonala to taka liczba w ktojej i = suma - i; suma = sumowane wszysktkie dzielniki.
6. Sprawdzasz czy liczba jest doskonała dopiero po sumowaniu dzielnikow. Nigdy w środku ponieważ pośredni wynik może spelniac równanie (i==suma-i)
oto porawiony przeze mine kod:
http://ideone.com/YPip2
7. Duży plus za to, że deklarujesz zmienne przed main