Witam mam prośbę o pomoc lub udzielenie wskazówki nad poprawą programu. Program działa poprawnie, sędzia go zaakceptową, jednak chciałbym w nim poprawić to żeby pozbyć się breaków oraz zmienić pętlę nieskończoną.
kod programu:
#include <iostream>
using namespace std;
int main()
{
int testy, n, pomocnicza;
cin >> testy;
for(int i=0; i<testy; i++)
{
cin >> n;
pomocnicza = 2;
for( ; ; )
{
if (pomocnicza == n)
{
cout << "TAK" << endl; break;
}
else if(0 == n%pomocnicza)
{
cout << "NIE" << endl; break;
}
else if(n<2)
{
cout << "NIE" << endl; break;
}
pomocnicza++;
}
}
return 0;
}
Możliwe, że sito dobrze przesiewa i to rozumiem, ale zupełnie nie rozumiem, dlaczego wychodzi, dlaczego twój program wyrzuca zupełnie co innego, niż jest w zadaniu po słowie output?
OUTPUT:
TAK
NIE
NIE
Możliwe, że źle prosisz [twój program prosi] o n? No i nie ma tam żadnego 1 2 3 4, tylko n = 3 i [11, 1, 4]
POMOCY! Błąd:błędna odp.
#include <iostream> using namespace std; long long n,l; bool p(long long n) { if(n<=2) return false; for(int i=2; i*i<=n; i++) if(n%i==0) return false; return true; } int main() { cin>>l; for(int i=0; i<l; i++) { cin>>n; if(p(n)) cout<<"TAK"<<endl; else cout<<"NIE"<<endl; } return 0; }
Witam, Czy mógłby mi ktoś pomóc z kodem. Na moim komputerze działa wszystko ok, natomiast po wrzuceniu na ideone wyrzuca same odpowiedzi na NIE. Co trzeba poprawić?
include
using namespace std;
int n,i,x;
bool pierw (int t)
{
for (x=2; x {
if((t%x) == 0) return true;
}
}
int main()
{
cin>>n;
int tab[n-1];
for (i=0;i {
cin>>tab[i];
if(pierw(tab[i]) || tab[i]==1)
{
cout<<"NIE"< }
else cout<<"TAK"< }
return 0;
}
include
using namespace std;
long int n;
int main()
{
cout << "Podaj ilosc sprawdzanych liczb:";
cin >> n;
int *tablica;
tablica= new int [n];
for (int i=0; i<n; i++)
{
cout<< "Podaj liczbe nr. " << i+1 <<":" ;
cin >> tablica[i];
}
for (int i=0; i<n; i++)
{
int liczba;
string x;
if (*tablica<2);
if (*tablica==2) cout << "TAK";
else
{
for (int i=1; i<*tablica-1; i++)
{
liczba=*tablica%(*tablica-i);
if (liczba==0) {x="NIE"; i=*tablica;}
else x="TAK";
}
}
cout << x<<endl;
tablica++;
}
return 0;
}
Witam
Dlaczego sędzia nie może uznac tego kodu ? Komunikat to Przekroczono limit czasu.
Pozdrawiam
Po pierwsze nie wypisuj niczego czego niema w specyfikacji wyjścia, wyniki sprawdza komputer więc "Podaj ilosc sprawdzanych liczb:" oraz "Podaj liczbe nr. cośtam" zostaną uznane za błędne odpowiedzi. Co zaś się tyczy przekroczenia limitu czasu, to przy sprawdzaniu czy 1 jest liczbą pierwszą nie wypisze mi nic (mi zresztą kompilator zwrócił uwagę że masz ifa który nie nie robi nawet jeśli warunek jest prawdziwy).
ps nie musisz korzystać z tablic, możesz wczytać liczbę, sprawdzić ją, wypisać i wczytać następną.