Cần tìm người giảng ngôn ngữ lập trình C !

namit2507

Hero
Joined
Apr 22, 2011
Messages
2,629
Reactions
2,691
MR
0.004
Làm tạm 1 bài kiểm tra số nguyên tố. Chủ yếu là lý giải cách làm, sau khi hiểu thì có thể tự viết lại hoặc dùng phương pháp tối ưu hơn :) Tiếclà ko có nhiều thời gian để làm và ghi chú chi tiết hết các bài còn lại.


IsPrimeNumber.jpg
 

mmome334

Hero
Joined
Nov 3, 2013
Messages
1,243
Reactions
1,448
MR
0.324
đóng góp bài kiểm tra Số nguyên tố = C++.
để kiểm tra số nguyên tố chỉ cần dò nghiệm từ khoảng 2 --> căn bậc 2 của (số cần tìm) là ok :D, đoạn code rõ ràng hơn, có gì thăc mắc thì cứ hỏi nhé.
viwfct
 

newbiemmovn

Junior
Joined
Dec 16, 2013
Messages
167
Reactions
156
MR
0.000
Làm tạm 1 bài kiểm tra số nguyên tố. Chủ yếu là lý giải cách làm, sau khi hiểu thì có thể tự viết lại hoặc dùng phương pháp tối ưu hơn :) Tiếclà ko có nhiều thời gian để làm và ghi chú chi tiết hết các bài còn lại.


IsPrimeNumber.jpg

Bài này của bác ko được rồi, theo em nhớ như này là ko tối ưu vì phải chạy những cái ko cần thiết. như bác viết nếu count lớn hơn 2 rồi thì vòng for vẫn chạy tiếp, đúng ra nên để lệnh kiểm tra biến đếm trong vòng for, nếu nó = 2 là nhẩy ra ngoài luôn. Mà bài này thuật toán của nó ko phải vậy. Em nhiều chuyện trình bày thuật giải cho nó sướng.
Kiểm tra 1 số có phải số nguyên tố hay ko, thuật toán nhớ ko nhầm là nó ko chia hết số nào từ 2->căn bậc 2 của chính nó. thì nó là số nguyên tố.
Thuật giải mô tả như sau.
input nhập vào 1 số
làm hàm kiểm tra số đó có phải số nguyên tố hay ko
output --> kết quả có phải số nguyên tố hay ko
Chương trình demo thuật giải theo ngôn ngữ tự nhiên.

Nhập vào 1 số x
func snt(x)
return true;
for i=2 to (căn bậc 2 của x)
if (x chia hết cho i) thì
{
return false;
exit; (thoát luôn ở đây ko cần duyệt tiếp)
}
next
end func
main chương trình thì đơn gian
if snt(x) thì ---> snt
else ---> ko phải snt

lâu rồi mới đc lên sàn những bài thế này cũng vui :cool:
 
Bài này của bác ko được rồi, theo em nhớ như này là ko tối ưu vì phải chạy những cái ko cần thiết. như bác viết nếu count lớn hơn 2 rồi thì vòng for vẫn chạy tiếp, đúng ra nên để lệnh kiểm tra biến đếm trong vòng for, nếu nó = 2 là nhẩy ra ngoài luôn. Mà bài này thuật toán của nó ko phải vậy. Em nhiều chuyện trình bày thuật giải cho nó sướng.
Kiểm tra 1 số có phải số nguyên tố hay ko, thuật toán nhớ ko nhầm là nó ko chia hết số nào từ 2->căn bậc 2 của chính nó. thì nó là số nguyên tố.
Thuật giải mô tả như sau.
input nhập vào 1 số
làm hàm kiểm tra số đó có phải số nguyên tố hay ko
output --> kết quả có phải số nguyên tố hay ko
Chương trình demo thuật giải theo ngôn ngữ tự nhiên.

Nhập vào 1 số x
func snt(x)
return true;
for i=2 to (căn bậc 2 của x)
if (x chia hết cho i) thì
{
return false;
exit; (thoát luôn ở đây ko cần duyệt tiếp)
}
next
end func
main chương trình thì đơn gian
if snt(x) thì ---> snt
else ---> ko phải snt

lâu rồi mới đc lên sàn những bài thế này cũng vui :cool:

Vâng, việc tối ưu là việc làm sau khi giải được, thủ thread vừa mới bắt học lập trình còn đang quên kiến thức toán nên mình phải nhắc lại mà
 

Announcements

Forum statistics

Threads
434,223
Messages
7,321,197
Members
185,490
Latest member
HughWilso2
Back
Top Bottom