Lập trình đơn giản

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Nguyễn Chơn Nhân
TONGUOC - TỔNG ƯỚC Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi: phuleethanh

Tính tổng các ước của số nguyên dương n (n ≤ 10^12).

Dữ liệu nhập:

- Dòng đầu chứa số bộ test.

- Các dòng sau, mỗi dòng chứa 1 số nguyên dương n (n ≤ 10^12).

Kết quả:

- Mỗi test in trên 1 dòng chứa 1 số nguyên là tổng các ước của test tương ứng.

Ví dụ input 3
92
29
82 output 92 co 6 uoc. Tong uoc la: 168
29 co 2 uoc. Tong uoc la: 30
82 co 4 uoc. Tong uoc la: 126
Nguyễn Lê Phước Thịnh
26 tháng 11 2019 lúc 22:12

uses crt;
const fi='standard.inp';
fo='standard.out';
var f1,f2:text;
a:array[1..100]of integer;
i,j,n,dem,t:integer;
begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
readln(f1,a[i]);
{--------------------xu-ly------------------}
for i:=1 to n do
begin
write(f2,a[i],' co so uoc la: ');
dem:=0;
t:=0;
for j:=1 to a[i] do
if a[i] mod j=0 then
begin
dem:=dem+1;
t:=t+j;
end;
writeln(f2,dem.,' tong uoc la: ',t);
end;
close(f1);
close(f2);
readln;
end.

Khách vãng lai đã xóa
Tuyết hoàng thị
11 tháng 8 2021 lúc 9:36

var n:qword;i:longint;
a:array[1..1000] of longint;
function du(x:qword):qword;
var k,d:longint;
begin
d:=0;
for k:=1 to trunc(sqrt(x)) do
 begin
  if x mod k=0 then
   begin
    d:=d+2;
   end;
 end;
if sqrt(x)=trunc(sqrt(x)) then dec(d);
du:=d;
end;
function tu(s:qword):qword;
var t:qword;j:longint;
begin
t:=0;
for j:=1 to trunc(sqrt(s)) do
  if s mod j=0 then t:=t+j+(s div j);
tu:=t;
end;
begin
readln(n);
for i:=1 to n do
  readln(a[i]);
for i:=1 to n do
 writeln(a[i],' co ',du(a[i]),' uoc. Tong uoc la: ',tu(a[i]));
readln;
end.


Các câu hỏi tương tự
Huệ Hà
Xem chi tiết
Đào Tiến Đạt
Xem chi tiết
No_sun
Xem chi tiết
phamthiminhanh
Xem chi tiết
Nguyễn Minh Lệ
Xem chi tiết
dinhnguyentuhuy
Xem chi tiết
dinhnguyentuhuy
Xem chi tiết
Quang Anh Nguyễn
Xem chi tiết
Mon_LAK
Xem chi tiết