Đội ôn thi tin học trẻ không chuyên năm 2012

Status
Không mở trả lời sau này.
H

hocmai.diendan

Lập 1 đội ôn thi cùng nhau đi các em? Ngày xưa các anh chị khóa trước lập đội ôn thi HSG Quốc gia môn Sử và rinh giải về đấy.
Tại sao không?
 
1

11thanhkhoeo

Thử sức với bài này em nhé


- Số nguyên tố tương đương
(Dành cho học sinh THCS)
Hai số tự nhiên được gọi là Nguyên tố tương đương nếu chúng có chung các ước số nguyên tố. Ví dụ các số 75 và 15 là nguyên tố tương đương vì cùng có các ước nguyên tố là 3 và 5. Cho trước hai số tự nhiên N, M. Hãy viết chương trình kiểm tra xem các số này có là nguyên tố tương đương với nhau hay không.
 
1

11thanhkhoeo

Nếu cần giúp đỡ hãy pm anh

yahoo thanhkhoeo_city

Sdt 0166.821.2096 (lưu ý anh nói hơi khó nghe )
 
M

mikelhpdatke

Thử sức với bài này em nhé


- Số nguyên tố tương đương
(Dành cho học sinh THCS)
Hai số tự nhiên được gọi là Nguyên tố tương đương nếu chúng có chung các ước số nguyên tố. Ví dụ các số 75 và 15 là nguyên tố tương đương vì cùng có các ước nguyên tố là 3 và 5. Cho trước hai số tự nhiên N, M. Hãy viết chương trình kiểm tra xem các số này có là nguyên tố tương đương với nhau hay không.
Bài SNTTĐ này chủ yếu là thuật toán.
Trước tiên ta tìm UCLN(a,b) {a,b nhập từ bàn phím}

Sau đó lấy 2 số này chia cho Ư(UCLN) {Nếu chia hết }
Code

Mã:
Function UCLN(a,b):Integer;
 ............................
End;
BEGIN
d:=UCLN(a,b);
i:=2;
While (d<>1) do
  Begin
     While d mod i=0 do d:=d div i;
     While a mod i=0 do a:=a div i;
     While b mod i=0 do b:=b div i;
   inc(i);
 End;

If a*b=1 then PrintResult;
 
1

11thanhkhoeo

Bài này em nghĩ như thế là sai vì

Tất nhiên a và b sẽ chia hết cho ước chung lớn nhất của chúng rồi

bài này làm thế này nhé

phân tích thừa số nguyên tố ra 2 mảng (tất nhiên là chỉ cần hệ số không cần mũ)

so sánh 2 mảng
 
D

duynhan1

Bài này em nghĩ như thế là sai vì

Tất nhiên a và b sẽ chia hết cho ước chung lớn nhất của chúng rồi

bài này làm thế này nhé

phân tích thừa số nguyên tố ra 2 mảng (tất nhiên là chỉ cần hệ số không cần mũ)

so sánh 2 mảng
Mình nghĩ nếu thế thì chi phí hơi lớn, tại sao không phân tích 1 số rồi kiểm tra số kia.
Mình viết cái thủ tục Kiểm tra + Giãn ước.

Function Check(i:integer):boolean; {Phân tích m, đối chiếu n}
Begin
If not(n mod i=0) then Exit(false)
....Else While n mod i = 0 then n:=n div i;
Exit(True);
End;
 
M

mikelhpdatke

Không phải, tức là e chia cả 3 số a,b,UCLN cho UCLN của UCLN anh ah`, hồi trước thầy giáo e bảo làm thế đúng mà??


Code đây a. Em chạy đúng mà
Mã:
Program Nttd;
Var M,N,d,i: integer;
{------------------------------------}
Function USCLN(m,n: integer): integer;
Var r: integer;
Begin
 While n<>0 do
 begin
   r:=m mod n; m:=n; n:=r;
 end;
 USCLN:=m;
End;
{------------------------------------}
BEGIN
 Write('Nhap M,N: '); Readln(M,N);
 d:=USCLN(M,N); i:=2;
 While d<>1 do
 begin
   If d mod i =0 then
   begin
     While d mod i=0 do d:=d div i;
     While M mod i=0 do M:=M div i;
     While N mod i=0 do N:=N div i;
   end;
   Inc(i);
 end;
 If M*N=1 then Write('M va N nguyen to tuong duong.')
 Else Write('M va N khong nguyen to tuong duong.');
 Readln;
END.
 
1

11thanhkhoeo

Mã:
Program Nttd;
Var M,N,i: integer;

BEGIN
 Write('Nhap M,N: '); Readln(M,N);

 While i<=m  do
 begin
   If (m mod i =0) and (n mod i=0) then
   begin
     While M mod i=0 do M:=M div i;
     While N mod i=0 do N:=N div i;
   end;
   Inc(i);
 end;
 If M*N=1 then Write('M va N nguyen to tuong duong.')
 Else Write('M va N khong nguyen to tuong duong.');
 Readln;
END.

Thử cái này xem ngắn gọn hơn

Cái của chú mike cũng được đấy
 
M

mikelhpdatke

Làm theo cách này thi số lần lặp của While có thể sẽ lớn hơn cách của em. Vì ko chặn i. Cách của e chặn i<= UCLN
 
C

cuong276

Theo tớ cách nào cũng được. Trong khi thi chỉ cần chạy được chương trình là được. Không cần quan tâm là chương trình có ngắn gọn hay không.
 
M

mikelhpdatke

Không phải chạy được là ăn điểm tuyệt đối đâu. Còn tùy thuộc vào t/g. Thuật toán, trình bày,..
 
M

mikelhpdatke

Thì nếu chạy được, đúng thì dĩ nhiên là ta an tâm, nếu còn t/g, bạn làm xong hết thì có thể tìm thuật tốt hơn :D
 
M

mikelhpdatke

Bài 1 : Tổng các chữ số
Cho số nguyên dương n. VIết các số nguyên liên tiếp từ 1 tới n trong hệ thập phân để tạo ra một dãy các chữ số. Hãy tính tổng các chữ số của dãy.

Ví dụ : với n = 12, ta có dãy chữ số 123456789101112 với tổng là 51.

Test n=
12
123
2468
13579
12481632
23456789
9876543210
123123123123
123456789123456789
98765432100123456789

AE trong topic làm bài này nào :D
 
T

thaiha_98

Bài nguyên tố tương đương ở 100 đề thi tin học và nhà trường mà :khi (73):
Đợt trước thi loại làm bài đấy
Giờ nghĩ lại lúc đi thi tỉnh đã chán rồi
Chắc phải đợi lên THPT thì mới có cơ hội để học tin tiếp, rớt rồi thì biết làm thế nào :khi (76)::khi (204)::khi (139):
 
M

mikelhpdatke

Bài nguyên tố tương đương ở 100 đề thi tin học và nhà trường mà :khi (73):
Đợt trước thi loại làm bài đấy
Giờ nghĩ lại lúc đi thi tỉnh đã chán rồi
Chắc phải đợi lên THPT thì mới có cơ hội để học tin tiếp, rớt rồi thì biết làm thế nào :khi (76)::khi (204)::khi (139):
Ủa năm sau ko H đi thi Tin nữa ah` :-/
 
Status
Không mở trả lời sau này.
Top Bottom