Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 09-05-2013 - 12:46

Bài 1: Dãy số hạnh phúc
Dãy số nguyên dương a1, a2, ..., an là dãy số hạnh phúc nếu:
+ Là dãy số giảm dần

+ Với mỗi a(i) với i>1 thì a(i) hoặc là số nguyên tố hoặc là ước của một trong các số từ a(1) đến a(i-1)
Lập trình nhập từ bàn phím số nguyên dương N<=1000 sau đó đưa ra màn hình dãy số hạnh phúc bắt đầu từ N VD: N=5 thì DSHP: 5 3 2 1 N=8 thi DSHP: 8 7 5 4 3 2 1 Bài 2 Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n. Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7) Số nguyên tố rút gọn của n là 2+3+7=12 Yêu cầu: a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1

- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”.

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím


  • nguyenminhquanduongvexaxoi yêu thích

Đã gửi 21-11-2013 - 22:36

Bài 1: Dãy số hạnh phúc
Dãy số nguyên dương a1, a2, ..., an là dãy số hạnh phúc nếu:
+ Là dãy số giảm dần

+ Với mỗi a(i) với i>1 thì a(i) hoặc là số nguyên tố hoặc là ước của một trong các số từ a(1) đến a(i-1)
Lập trình nhập từ bàn phím số nguyên dương N<=1000 sau đó đưa ra màn hình dãy số hạnh phúc bắt đầu từ NVD:N=5 thì DSHP: 5 3 2 1N=8 thi DSHP: 8 7 5 4 3 2 1Bài 2Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n.Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7)Số nguyên tố rút gọn của n là 2+3+7=12Yêu cầu:a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1

- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”.

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Bài 1:

Đầu tiên xây dựng mảng số nguyên tố: prime[i] để kiểm tra xem i có phải là số nguyên tố? Có thể cài Eratosthene hoặc trâu đều được, với N<=1000 đây không phải vấn đề.

Lập mảng b[i] chứa các số nguyên tố từ 1 đến N. Mảng c[i] là mảng chứa các số là ước của N. Nhận thấy dãy số kết quả chính là tổng hợp lại của 2 mảng này.

Mảng b[i] thì dễ cài đặt rồi.

Mảng c[i], để ý tất cả các số trong mảng này đều phải là ước của N. Chỉ cần liệt kê tất cả các ước của N là xong mảng c.

2 mảng b,c nên được cài khéo léo sao cho chúng có thứ tự tăng dần

Cuối cùng ta trộn hai mảng lại, thuật toán tương tự MergeSort (Cho biến i chạy dọc mảng b, biến j chạy dọc mảng c. Nếu a[i]b[j] thì tăng j lên 1. Nếu a[i]=b[j] thì tăng cả i và j lên 1. Lưu lại vào mảng kết quả.

Viết lại mảng kết quả theo chỉ số giảm dần -> done!

Độ phức tạp: O(N).


  • Mrnhannguyenminhquanduongvexaxoi thích

Đã gửi 21-11-2013 - 22:44

mấy bài này lên cấp 3  rồi mà vẫn còn chẳng hiểu cái gì? trừ mấy bạn ở khối chuyên tin học sâu hơn


Đã gửi 26-06-2021 - 22:59

Bài 1: Dãy số hạnh phúc
Dãy số nguyên dương a1, a2, ..., an là dãy số hạnh phúc nếu:
+ Là dãy số giảm dần

+ Với mỗi a(i) với i>1 thì a(i) hoặc là số nguyên tố hoặc là ước của một trong các số từ a(1) đến a(i-1)
Lập trình nhập từ bàn phím số nguyên dương N<=1000 sau đó đưa ra màn hình dãy số hạnh phúc bắt đầu từ N VD: N=5 thì DSHP: 5 3 2 1 N=8 thi DSHP: 8 7 5 4 3 2 1 Bài 2 Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n. Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7) Số nguyên tố rút gọn của n là 2+3+7=12 Yêu cầu: a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1

- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”.

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Bài 1 :

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Hướng dẫn :Thực ra (nếu để ý kĩ) đây là dãy số bao gồm những số nguyên tố nhỏ hơn hoặc bằng n và ước của n .

code:

program bt1;

uses crt;

function kt(n:integer):boolean;

var i:integer;

a:boolean;

begin

a:=true;

for i:=2 to n-1 do

if n mod i=0 then

a:=a and false;

if n<2 then

kt:=false

else

kt:=a;

end;

var n,i:integer;

begin

clrscr;

write('nhap n:');

readln(n);

for i:=n downto 1 do

if (kt(i)) or (n mod i=0)  then

write(i:4);

readln;

end.


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 26-06-2021 - 23:05

Bài 2 nha :

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Bài này cứ cho chạy từ 1-n rồi kiểm tra xem nó có vừa là số nguyên tố vừa là ước của n ko la đc 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
  

program bt1;

uses crt;

var a,i,b,j,d,n:longint;

    c:array[1..10000]of longint;

function kt(n:longint):boolean;

var i:longint;

a:boolean;

begin

     a:=true;

  for i:=2 to n-1 do

if n mod i =0 then

a:=a and false;

if n<2 then

kt:=false

else

kt:=a;

end;

function t(n:longint):longint;

var i:longint;

begin

     t:=0;

     if (kt(n)) then t:=n

     else

       for i:=2 to n do

         if ((n mod i=0)and(kt(i))) then t:=t+i;

end;

begin

clrscr;

writeln('a)');

write('   Nhap n= ');

readln(n);

writeln('   So nguyen to rut gon cua ',n,' la ',t(n));

writeln('b)');

write('nhap a:');

readln(a);

write('nhap b:');

readln(b);

j:=0;

d:=0;

for i:= a to b do

if t(n)=t(i) then

begin

inc(d);

inc(j);

c[j]:=i;

end;

writeln('co ',d,' so co cung sntrg la:');

for i:=1 to d do

write(c[i]:6);

readln;

end.


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 26-06-2021 - 23:07

Bài 3:

Code: 

program bt1;

uses crt;

var st:string;

v,i,t,s,p,w:integer;

begin

clrscr;

write('nhap vao xau:');

readln(st);

t:=0;

s:=1;

for i:=1 to length(st) do

begin

v:=i+1;

while st[v]=st[i] do

begin

inc(v);

inc(s);

end;

if t

t:=s;

s:=1;

end;

write(t:10);

s:=0;

p:=0;

for i:=1 to length(st) do

begin

w:=0;

v:=i+1;

while (w<=1) or (st[v]=st[i]) do

begin

inc(s);

inc(v);

if st[v]<>st[i] then

w:=w+1;

end;

if p

p:=s;

s:=0;

w:=0;

end;

write(p:10);

readln;

end.


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 27-06-2021 - 15:54

Bài 4 mk chưa học tệp nên làm mảng xâu nha 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

program bt1;

uses crt;

var a:array[1..10000] of string;

d,i,n,j:integer;

begin

clrscr;

write('nhap vao so luong xau:');

readln(n);

for i:=1 to n do

begin

write('nhap xau thu ',i,' :');

readln(a[i]);

end;

for i:=1 to n do

begin

d:=0;

for j:=1 to n do

if a[i]=a[j] then

d:=d+1;

if d=1 then

writeln(a[i]);

end;

readln;

end.


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 27-06-2021 - 16:13

cau 12 :

code:

program bt1;

uses crt;

var n,i:integer;

function kt(n:integer):boolean;

var a:boolean;

i:integer;

begin

a:=true;

for i:=2 to n-1 do

if n mod i=0 then

a:=a and false;

if n<2 then

kt:=false

else;

kt:=a;

end;

begin

clrscr;

write('nhap n:');

readln(n);

if kt(n) then

write(n,' la so nguyen to')

else

begin

write(n,' = ');

i:=2;

while n>1 do

if n mod i=0 then

begin

write(i);

n:=n div i;

if n>1 then

write(' . ');

end

else

i:=i+1;

end;

readln;

end.


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 27-06-2021 - 16:16

Mấy bài tệp để mk nghiên cứu đã

chưa học


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 27-06-2021 - 16:26

b9: code:

program bt1;

uses crt;

var a:array[1..50] of integer;

i,n,d1,d2,d3:integer;

function kt(n:integer):boolean;

var a:boolean;

i:integer;

begin

a:=true;

for i:=2 to n-1 do

if n mod i=0 then

a:=a and false;

if n<2 then

kt:=false

else

kt:=a;

end;

begin

clrscr;

write('nhap vao so phan tu cua mang:');

readln(n);

for i:=1 to n do

begin

write('nhap a[',i,']:');

readln(a[i]);

end;

d1:=0;

d2:=0;

d3:=0;

for i:=1 to n do

begin

if a[i] mod 2=0 then

d1:=d1+1

else

d2:=d2+1;

if kt(a[i]) then

d3:=d3+1;

end;

write(d1:4,d2:4,d3:4);

readln;

end.


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 27-06-2021 - 16:46



b9: code:

program bt1;

uses crt;

var a:array[1..50] of integer;

i,n,d1,d2,d3:integer;

function kt(n:integer):boolean;

var a:boolean;

i:integer;

begin

a:=true;

for i:=2 to n-1 do

if n mod i=0 then

a:=a and false;

if n<2 then

kt:=false

else

kt:=a;

end;

begin

clrscr;

write('nhap vao so phan tu cua mang:');

readln(n);

for i:=1 to n do

begin

write('nhap a[',i,']:');

readln(a[i]);

end;

d1:=0;

d2:=0;

d3:=0;

for i:=1 to n do

begin

if a[i] mod 2=0 then

d1:=d1+1

else

d2:=d2+1;

if kt(a[i]) then

d3:=d3+1;

end;

write(d1:4,d2:4,d3:4);

readln;

end.

Xử lí tại đầu vào sẽ tối ưu hơn

>>tiết kiệm biến mảng a 


Đã gửi 27-06-2021 - 20:56

Xử lí tại đầu vào sẽ tối ưu hơn

>>tiết kiệm biến mảng a 

Thk bạn góp ý (mặc dù mình cx ko hiểu lắm)

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Mà sao bạn theo dõi mình à sao trích cả hai bài rồi

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 27-06-2021 - 21:35

Thk bạn góp ý (mặc dù mình cx ko hiểu lắm)

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Mà sao bạn theo dõi mình à sao trích cả hai bài rồi

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

sửa lại :

program bt1;

uses crt;

var a:integer;

i,n,d1,d2,d3:integer;

function kt(n:integer):boolean;

var a:boolean;

i:integer;

begin

a:=true;

for i:=2 to n-1 do

if n mod i=0 then

a:=a and false;

if n<2 then

kt:=false

else

kt:=a;

end;

begin

clrscr;

write('nhap vao so phan tu cua mang:');

readln(n);

for i:=1 to n do

begin

write('nhap a[',i,']:');

readln(a);

if a mod 2=0 then

d1:=d1+1

else

d2:=d2+1;

if kt(a) then

d3:=d3+1;

end;

write(d1:4,d2:4,d3:4);

readln;

end.

>>Thấy trong phần 'có gì mới ' 

>>là hs chuyên tin chơi theo hệ tối ưu (2k4)


Bài viết đã được chỉnh sửa nội dung bởi Lykan 11: 27-06-2021 - 21:48

Đã gửi 27-06-2021 - 22:40

sửa lại :

program bt1;

uses crt;

var a:integer;

i,n,d1,d2,d3:integer;

function kt(n:integer):boolean;

var a:boolean;

i:integer;

begin

a:=true;

for i:=2 to n-1 do

if n mod i=0 then

a:=a and false;

if n<2 then

kt:=false

else

kt:=a;

end;

begin

clrscr;

write('nhap vao so phan tu cua mang:');

readln(n);

for i:=1 to n do

begin

write('nhap a[',i,']:');

readln(a);

if a mod 2=0 then

d1:=d1+1

else

d2:=d2+1;

if kt(a) then

d3:=d3+1;

end;

write(d1:4,d2:4,d3:4);

readln;

end.

>>Thấy trong phần 'có gì mới ' 

>>là hs chuyên tin chơi theo hệ tối ưu (2k4)

hello a nha (anh bằng tuổi chị em haha) !

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

em 2k7(Lớp 8->9)!

em cx sắp thi tin!

em hiểu rồi !

anh ko sử dụng mảng mà dùng biến thường rồi kiểm tra luôn !

Thk a nha !

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím


Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 28-06-2021 - 16:17

                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 28-06-2021 - 09:23

hello a nha (anh bằng tuổi chị em haha) !

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

em 2k7(Lớp 8->9)!

em cx sắp thi tin tỉnh !

em hiểu rồi !

anh ko sử dụng mảng mà dùng biến thường rồi kiểm tra luôn !

Thk a nha !

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

em chuẩn bị thi tin học trẻ à 


Đã gửi 28-06-2021 - 10:02

em chuẩn bị thi tin học trẻ à 

Vâng ạ ! Năm nay dịch nó cho thi muộn ! Vẫn chưa thi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Mà nó thông báo chọn em đi thi trước có 1 tuần nên mới ôn được chút !

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 28-06-2021 - 16:21

Anh ơi trong free pascal có cho con trỏ file xuống dòng được ko ạ !

em làm thế này : writeln(f,sv) nó báo không đc dùng writeln !


                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 28-06-2021 - 17:18

Anh ơi trong free pascal có cho con trỏ file xuống dòng được ko ạ !

em làm thế này : writeln(f,sv) nó báo không đc dùng writeln !

xuống dòng bt a 

gửi ảnh đi, anh xem


Đã gửi 28-06-2021 - 22:25

xuống dòng bt a 

gửi ảnh đi, anh xem

Em không gửi được ảnh , nó bảo định dạng file hình ảnh không sử dụng được .

Tại em mới học file nên không hiểu

Em xem trên mạng nó bảo  :

3.2.3. Thủ tục Writeln

            Cú pháp: Writeln(F, x);

            Chức năng: Ghi giá trị x vào file ở vị trí con trỏ file. Kết thúc thủ tục, con trỏ file sẽ chuyển về đầu dòng sau.

Nhưng em làm nó báo lỗi là 

Error : Can't use readln or writeln on typed file

Là sao ạ !

Em xuất kết quả ra file ở ổ C:\

Hay là phải xuất kết quả ra file trong free pascal hả anh ? 


Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 28-06-2021 - 22:32

                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Đã gửi 28-06-2021 - 22:30

Đây là bài của em !

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

program bt1;

uses crt;

type

st20=string[20];

st10=string[10];

sinhvien=record

ht:st20;

ns,qq:st10;

dtb:real;

xl:char;

end;

var

f:file of sinhvien;

fn:string;

sv:sinhvien;

bht:st20;

i:word;

begin

clrscr;

write('nhap vao ten file muon luu :');

readln(fn);

assign(f,fn);

rewrite(f);

i:=1;

writeln('nhap thong tin ca nhan cua cac sinh vien :');

repeat

write('ho va ten cua sinh vien thu ',i,' :');

readln(bht);

if bht<>'' then

begin

sv.ht:=bht;

write('nhap ngay thg (dd/yy/www) :');

readln(sv.ns);

write('nhap vao que quan :');

readln(sv.qq);

write('diem trung binh :');

readln(sv.dtb);

if sv.dtb<5 then

sv.xl:='D'

else

if sv.dtb<6.5 then

sv.xl:='C'

else

if sv.dtb<8 then

sv.xl:='B'

else

sv.xl:='A';

write(f,sv);  <==== chỗ này em chuyển thành writeln(f,sv);  nó báo lỗi là:Error:Can't use readln or writeln on typed file 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 (Tại khi in ra kết quả nó cứ in trên 1 dòng nên không đẹp
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 )

end;

inc(i);

until bht='';

close(f);

readln;

end.

>>Mà anh ơi thi tin THCS có cần học phần file không ạ ! Tại còn ít thời gian nên em chỉ ôn những mảng thi cho hiệu quả thôi ạ!

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím


Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 28-06-2021 - 23:06

                   Học , học nữa , học mãi 

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím

Luôn không ngừng cố gắng để đạt thành quả

Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím
 
Viết chương trình tính tổng dãy n số nguyên với n được nhập từ bàn phím