Mật khẩu là một dãy số A có N số nguyên tử bảng vuông S gồm n*n ô, trong đó S[i,j] = A[i] + A[j] với i ≠ j, S[i,j] = 0 nếu i = j.
Yêu cầu: cho trước bảng S, hãy tìm mật khẩu.
Dữ liệu vào: file
MATKHAU.INP
- Dòng 1: Ghi số nguyên dương N (N<=30).
- N dòng tiếp theo, mỗi dòng chứa n số nguyên biểu diễn bảng S (-100 ≤ S[i,j] ≤ 100).
Dữ liệu ra: File MATKHAU.OUT ghi ra dãy số A.
Ví dụ:
MATKHAU.INP |
MATKHAU.OUT |
MATKHAU.INP |
MATKHAU.OUT |
2 0 2 2 0 |
1 1 |
4 0 3 6 7 3 0 5 6 6 5 0 9 7 6 9 0 |
2 1 4 5 |
Cho hai số nguyên n, m. Viết chương trình tìm các số nguyên
tố không vượt quá n sao cho tổng các chữ số của mỗi số đều bằng m.
Dữ liệu vào
từ file: TIMSNT.INP
- Dòng duy
nhất ghi 2 số nguyên n và m (0 < n, m ≤ 106), cách nhau một khoảng trắng.
Kết quả ra
file: TIMSNT.OUT
- Dòng đầu
tiên ghi số lượng các số nguyên tố tìm được
- Dòng thứ
2 ghi các số nguyên tố thỏa mãn yêu cầu, mỗi số cách nhau một khoảng trắng.
Ví dụ:
TIMSNT.INP |
TIMSNT.OUT |
50 5 |
3 5 23 41 |
1000 18 |
0 |
CODE THAM KHẢO:
program Tim_Snt;
uses crt;
const fi='TIMSNT.INP';
fo='TIMSNT.OUT';
var i,n,m,dem: integer;
f:text;
snt:array[1..1000000] of integer;
Function Kt_snt(n:integer): Boolean;
var i: integer; KT: boolean;
begin
KT:= true;
if n < 2 then KT:=false;
for i:=2 to n-1 do
if n mod i = 0 then KT:=False;
Kt_snt:=KT;
end;
function Tong(m: integer): integer;
var s,a: integer;
begin
s:=0;
while m <>0 do
begin
a:= m mod 10;
s:= s+a;
m:=m div 10;
end;
Tong:=s;
end;
begin
assign(f,fi); reset(f);
read(f,n,m);
assign(f,fo); rewrite(f);
for i:=2 to n do
if Kt_snt(i) and (tong(i) = m) then
begin
dem:=dem+1;
snt[dem]:=i;
end;
writeln(f,dem);
for i:=1 to dem do write(f,snt[i],' ');
close(f); close(f);
end.