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
Hakita Nguyen
Xem chi tiết
Quang Anh Nguyễn
Xem chi tiết