245 / 277
Mar 2021

Lub tylko przekierujesz stdin z pliku
lub przekierujesz i stdin i stdout z i do odpowiednich plików
lub użyjesz ideone z wypełnionym testem [danymi] okienkiem stdin
lub użyjesz innego rozwiązania, które robi to co powyżej
lub napiszesz sobie sam taki odpowiedni program robiący np to co ideone lub więcej

Dokładnie tak. Spoj “przekierowuje” “sobie” stdin z jednego i stdout do drugiego pliku, a nie wypisuje nic na konsoli więc “mu” się nie nie miesza.

3 months later

Witam

Będę bardzo wdzięczny za pomoc w oczywistej tutaj kwestii, tj. źle działającego kodu:

Dlaczego np. 9 wskazuje jako liczbę pierwszą? Czy coś namieszałem w pętli?

Twoja pętla sprawdzająca pierwszość zawsze się przerwie po pierwszej iteracji. Prześledź sobie uważnie działanie programu (np. z pomocą debuggera), sprawdzając zwłaszcza wyniki instrukcji warunkowych.

Zrobiłem coś takiego:

Jednak sędzia pokazuje przekroczony limit czasu.

1 month later

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;
    }
}

}

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.

  1. 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ę.

  2. 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 :grinning: 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.

8 days later

Test:

1
1

Wyjście:

NIE

Zwróć uwagę na wielkość liter i warunki brzegowe zadania (n - liczba testów n<100000, w kolejnych liniach n liczb z przedziału [1…10000]).

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");
		}
	}
  }	
}
3 months later

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ę :smile:

#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;
}

a co to za dziwne konstrukcje liczby++ czy liczby-- ? Czemu nie używać indeksów czyli liczby[i]? Właśnie na tym sie wysypuje, a po zmianie ostatniej pętli na indeksy nie ma błędów i jest AC.
Wyżej jest podany link dla początkujących,

1 month later

Witam wszystkich
Potrzebna mała pomoc z kodem:

Podejrzewam, że problemem jest “prompt()”, ale nie mam pewności i nie znalazłem sposobu czym go zastąpić.

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.