Treść zadania:
Sprawdź, które spośród danych liczb są liczbami pierwszymi
Input
n - liczba testów n<100000, w kolejnych liniach n liczb z przedziału [1..10000]
Output
Dla każdej liczby słowo TAK, jeśli liczba ta jest pierwsza, słowo: NIE, w przeciwnym wypadku.
Example
Input:
3
11
1
4
Output:
TAK
NIE
NIE
Kod źródłowy w C++:
#include <iostream> using namespace std; int main() { int q, i; cin>>q; for (int j=0; j<q; ++j) { cin>>i; if (i==1) {cout<<"NIE"<<endl;} if (i==2) {cout<<"TAK"<<endl;} int l; for(l=2; l<i; ++l) { if ((i%l) == 0) { cout<<"NIE"<<endl; break; } if (l == (i-1)) { cout<<"TAK"<<endl; } } } return 0; }
Kod źródłowy w C:
#include <stdio.h> #include <stdlib.h> int main() { int q, i, j, l; scanf("%d",&q); for (j=0; j<q; ++j) { scanf("%d",&i); if (i==1) { printf("NIE\n"); } if (i==2) { printf("TAK\n"); } for(l=2; l<i; ++l) { if ((i%l) == 0) { printf("NIE\n"); break; } if (l == (i-1)) { printf("TAK\n"); } } } return 0; }
Kod źródłowy w Python 2:
pierw_spr = [] for i in range(0, 10001, +1): pierw_spr.append(0) for a in range(2, 10001, +1): c = a if pierw_spr[a] == 0: pierw_spr[a] = 1 while a+c < 10001: a = a+c pierw_spr[a] = 2 zest = int(raw_input('')) for i in range(0, zest, +1): licz = int(raw_input('')) if pierw_spr[licz] == 1: print "TAK" else: print "NIE" exit(0)
Kod źródłowy w Python 3:
pierw_spr = [] for i in range(0, 10001, +1): pierw_spr.append(0) for a in range(2, 10001, +1): c = a if pierw_spr[a] == 0: pierw_spr[a] = 1 while a+c < 10001: a = a+c pierw_spr[a] = 2 zest = int(input('')) for i in range(0, zest, +1): licz = int(input('')) if pierw_spr[licz] == 1: print ("TAK") else: print ("NIE") exit(0)
Link do zadania:
http://pl.spoj.com/problems/PRIME_T/
Brak komentarzy:
Prześlij komentarz