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

NN
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
NT
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.

Bình luận (0)
 Khách vãng lai đã xóa
TT
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.

Bình luận (0)

Các câu hỏi tương tự
HH
Xem chi tiết
DD
Xem chi tiết
H24
Xem chi tiết
H24
Xem chi tiết
NL
Xem chi tiết
H24
Xem chi tiết
H24
Xem chi tiết
HN
Xem chi tiết
QN
Xem chi tiết