Số nguồn Tên file: SONGUON.cpp Xét một số N nguyên dương, Ví dụ: N = 836, xét tổng M = 836 + 8 + 3 +6 = 853, khi đó ta gọi số N = 836 là số nguồn của số M = 853. Có những số có thể có nhiều nguồn, ví dụ số: M = 909 có hai số nguồn là 891 và 900. Cho trước số M (M ≤ 2*109 ). Nhiệm vụ của bạn là tìm số nguồn của M, nếu như M có nhiều nguồn thì đưa ra kết quả là số nguồn nhỏ nhất. Dữ liệu vào: Số nguyên dương M Dữ liệu ra: Số nguồn nhỏ nhất của số M, trường hợp không tìm được số nguồn của M thì đưa ra -1.
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
program tim_nguon_nho_nhat;
const
MAX_NUMBER = 10000;
var
M, nguon_nho_nhat: Integer;
function TinhTongChuSo(num: Integer): Integer;
var
sumOfDigits: Integer;
begin
sumOfDigits := 0;
while num > 0 do
begin
sumOfDigits := sumOfDigits + (num mod 10);
num := num div 10;
end;
TinhTongChuSo := sumOfDigits;
end;
function TimNguonNhoNhat(M: Integer): Integer;
var
N, M_temp, M_digits, nguon_nho_nhat: Integer;
begin
M_temp := M;
nguon_nho_nhat := MAX_NUMBER;
for N := 1 to M_temp do
begin
M_digits := TinhTongChuSo(N) + N;
if M_digits = M_temp then
begin
if N < nguon_nho_nhat then
nguon_nho_nhat := N;
end;
end;
if nguon_nho_nhat = MAX_NUMBER then
TimNguonNhoNhat := 0
else
TimNguonNhoNhat := nguon_nho_nhat;
end;
begin
Readln(M);
nguon_nho_nhat := TimNguonNhoNhat(M);
if nguon_nho_nhat = 0 then
Writeln('0')
else
Writeln('Nguon nho nhat cua ', M, ' la ', nguon_nho_nhat);
end.
uses crt;
var n:integer;
begin
clrscr;
readln(n);
if trunc(sqrt(n))=sqrt(n) then writeln('yes')
else writeln('no');
readln;
end.
a)
uses crt;
var n,i,t,j:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
t:=0;
for j:=1 to i-1 do
if i mod j=0 then t:=t+j;
if t=i then write(i:4);
end;
readln;
end.
b)
uses crt;
var gt:real;
i,n:integer;
begin
clrscr;
write('Nhap n='); readln(n);
gt:=1;
for i:=1 to n do
gt:=gt*i;
writeln(gt:0:0);
readln;
end.
const
fi='sochinhphuong.inp';
fo='sochinhphuong.out';
var f,g:text;n:longint;
function scp(n:longint):boolean;
begin
if (sqr(trunc(sqrt(n)))=n) then exit (true);
exit (false);
end;
begin
assign(f,fi);reset(f);
assign(g,fo);rewrite(g);
readln(f,n);
if scp(n) then writeln(g,'yes') else
writeln(g,'no');
close(f);close(g);
end.
- Vì N là số tự nhiên có hai chữ số nên đặt \(N=\overline{ab}\) \(\left(0< a\le9;0\le b\le9;a,b\in N\right)\)
Ta có \(S\left(N\right)=S\left(\overline{ab}\right)=ab\) ; \(P\left(N\right)=P\left(\overline{ab}\right)=a+b\)
Vì \(N=S\left(N\right)+P\left(N\right)\) nên \(\overline{ab}=ab+a+b\)
\(\Rightarrow10a+b=ab+a+b\)
\(\Rightarrow9a=ab\Rightarrow b=9\) (vì a khác 0)
Vậy chữ số hàng đơn vị của N là 9 ---> chọn E
#include <bits/stdc++.h>
using namespace std;
string st;
int d,i;
bool kt;
int main()
{
cin>>st;
d=st.length();
kt=true;
for (i=0; i<=d-1; i++)
if ((st[i]!='6') and (st[i]!='8')) kt=false;
if (kt==true) cout<<"YES";
else cout<<"NO";
return 0;
}
theo đề khi chia 355 cho a ta được số dư là 13 nên ta có 355 = a.m+13 với m \(\varepsilon\)N* và a>13 hay a.m = 342 = 18.19 và khi chia 836 cho a ta được số dư là 8 nên ta có 836 = a.n+8 => a.n = 828 = 18.46 với n \(\varepsilon\)N* . từ đó => a = 18 là số tự nhiên cần tìm.
Like ha ^-^.