Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
512M
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
Python, Scratch
Trong một buổi học toán, thầy giáo đưa ra một thử thách thú vị cho học sinh:
Các em hãy tìm tất cả các số nguyên tố ẩn bên trong một đoạn văn bản. Nếu không có số nguyên tố nào, hãy trả lời -1
.
Học sinh cần tìm ra các số trong đoạn văn bản, kiểm tra xem số nào là số nguyên tố, rồi in ra danh sách các số nguyên tố tìm được theo thứ tự xuất hiện.
Dữ liệu vào
- Một chuỗi ký tự ~S~ có độ dài không quá ~1000~ ký tự, chứa cả chữ cái và chữ số. Các số trong chuỗi có thể nằm rải rác giữa các ký tự chữ.
Dữ liệu ra
- Một dòng duy nhất chứa các số nguyên tố tìm được, cách nhau bởi dấu cách. Nếu không tìm thấy số nguyên tố, in ra
-1
.
Ràng buộc
- Các số có thể có tối đa ~6~ chữ số.
- Một số có thể xuất hiện nhiều lần, nhưng chỉ cần lấy lần xuất hiện đầu tiên theo thứ tự xuất hiện.
Sample
Input 1
Baithi999331ratkho123456
Output 1
999331
Note
- Số ~999331~ là số nguyên tố, nhưng số ~123456~ thì không phải.
Input 2
Học sinh A làm được 20, học sinh B được 35
Output 2
-1
Note
- Số ~20~ và số ~35~ không phải là số nguyên tố.
Input 3
Ketquathi2357nhung2357vanphaitiep1901tuc1901
Output 3
2357 1901
Note
- Số ~2357~ và ~1901~ là số nguyên tố.
Bình luận
baon27794 nè bạn:
import sys import math
def isprime(n): if n < 2: return False if n == 2: return True if n % 2 == 0: return False sqrtn = int(math.isqrt(n)) + 1 for i in range(3, sqrt_n, 2): if n % i == 0: return False return True
def extract_numbers(s): numbers = [] num = '' for ch in s: if ch.isdigit(): num += ch else: if num: numbers.append(int(num)) num = '' if num: numbers.append(int(num)) return numbers
def main(): s = sys.stdin.read().strip() nums = extractnumbers(s) seen = set() primes = [] for num in nums: if num not in seen: seen.add(num) if isprime(num): primes.append(str(num)) if primes: print(' '.join(primes)) else: print(-1)
if name == "main": main()
help
ko