Witam, będę wdzięczny za pomoc w znalezieniu błedu
#include
using namespace std;
int main()
{
int n,x,test;
cin >> n;
{
for (int i=0; i<n; i++)
{
cin >> x;
if(x<2) test=0;
if (x==2) test=1;
for(int k=2; k*k<=x; k++){
if(x%k==0) test=0;
else test=1;}
if (test==1) cout <<"TAK"<< endl;
else if (test==0) cout << "NIE"<<endl;
}
}
}
Jeśli zaczynasz, przeczytaj koniecznie! <–kliknij w to proszę!
Weź kartkę papieru i przeanalizuj krok po kroku działanie pętli np dla x=10
Dzień dobry, nie bardzo chyba jeszcze rozumiem mechanizm działania tej strony więc proszę o pomoc w znalezieniu błędu. Z góry dziękuję
#include
using namespace std;
int number;
int main()
{
cin >> number;
if (number == 1) return 0;
else
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
cout << "NO";
return 0;
}
}
cout << "YES";
}
return 0;
}
Przeczytaj dokładnie opis zadania.
-
Sprawdź czy Twój kod jest przygotowany na to co może pojawić się na wejściu. W przykładzie podane jest sprawdzenie trzech liczb.
Czy Twój program sobie z tym poradzi? - Nie Twój program przyjmuje tylko jedną liczbę. -
Czy Twój program podaje wyjście zgodne ze specyfikacją podaną przez autora zadania? - Nie Twój program podaje wynik inny niż oczekuje tego autor zadania
Weź pod uwagę fakt, że poprawność rozwiązania sprawdza automat. On podchodzi do problemu zero-jedynkowo. Albo całość jest poprawna i wtedy masz zaliczenie, albo tak nie jest i wtedy nie masz zaliczenia. Nie masz tu częściowo dobrze zrobionego zadania tak jak nie można być trochę w ciąży No, dobrze są takie zadania gdzie częściowe wyniki też się liczą, ale to do takich nie należy.
Inną jeszcze kwestią jest wybór nieefektywnego algorytmu.
Dzień dobry, to moje pierwsze początki w programowaniu w Javie jak i na tym portalu. Po wrzuceniu rozwiązania system wyrzuca mi błąd wykonania (NZEC). Mógłby mi ktoś podpowiedzieć co robię nie tak?
import java.util.*;
public class PrimeNumbers
{
public static void main(String[] args) throws java.lang.Exception
{
Scanner in = new Scanner(System.in);
short Liczba;
byte Dzielniki;
for(int i = 1; i <= 10000; i++)
{
Dzielniki = 0;
Liczba = in.nextShort();
if(Liczba == 1) continue;
for(int j = 2; j <= Liczba; j++)
{
if(Liczba % j == 0)
{
Dzielniki++;
}
}
if(Dzielniki == 1)
{
System.out.println("TAK");
}
else
{
System.out.println("NIE");
}
}
}
}
Zobacz jaki wynik dostaniesz, jak skompilujesz swój program na https://ideone.com/3
Dopiero co się uczę programowanie i mam pytanie czemu wywala mi błąd związany chyba z pamiecią (i tak wiem pewnie dałoby się go znacznie uprościć ale jak wspomniałem dopiero się uczę
#include <iostream>
using namespace std;
int main()
{
int liczba_testow;
cin >> liczba_testow;
int* liczby = new int[liczba_testow];
bool isPrime;
for (int k = 0; k < liczba_testow; k++)
{
cin >> *liczby;
liczby++;
}
for (int l = 0; l < liczba_testow; l++)
{
liczby--;
}
for (int i = 0; i < liczba_testow; i++)
{
if (*liczby == 0 || *liczby == 1)
{
cout << "NIE" << endl;
}
else
{
isPrime = true;
for (int j = 2; j < *liczby; j++)
{
if (*liczby % j == 0)
{
isPrime = false;
}
}
if (isPrime) cout << "TAK" << endl;
else cout << "NIE" << endl;
}
liczby++;
}
delete[] liczby;
return 0;
}
oto link do przykladu komunikacji w jezyku java z sydtemem sedziujacym spoj oraz ideone.
https://ideone.com/samples#sample_lang_555
inne spodoby raczej nie dzialaja.
w ideone wkleja sie dane wejsciowe w odpowiednie okienko. nie ma mozliwosci testowania jak w konsoli.
Cześć, jestem początkujący w programowaniu i napisałem taki kod https://ideone.com/wMlktU6 . Outputy wychodzą mi poprawne, natomiast sędzia pokazuje błędną odpowiedź. Ktoś mógłby mi coś podpowiedzieć?