Viết chương trình tìm UCLN của a,b (a,b nhập từ bàn phím).
Kiểu mảng
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 KiemTraSoSieuNguyenTo;
uses crt;
function IsPrime(num: integer): boolean;
var
i: integer;
begin
if num < 2 then
IsPrime := false
else
begin
IsPrime := true;
for i := 2 to trunc(sqrt(num)) do
begin
if num mod i = 0 then
begin
IsPrime := false;
break;
end;
end;
end;
end;
function IsSuperPrime(num: integer): boolean;
var
i, temp: integer;
begin
IsSuperPrime := true;
while num > 0 do
begin
if not IsPrime(num) then
begin
IsSuperPrime := false;
break;
end;
temp := num mod 10;
num := num div 10;
end;
end;
var
n: integer;
inputFile, outputFile: text;
begin
assign(inputFile, 'SNT.INP');
assign(outputFile, 'SNT.OUT');
reset(inputFile);
rewrite(outputFile);
readln(inputFile, n);
if IsSuperPrime(n) then
writeln(outputFile, 1)
else
writeln(outputFile, 0);
close(inputFile);
close(outputFile);
end.
bạn viết tới phần mình chưa học á.bạn viết lại đơn giản hơn được không
def kiem_tra_nguyen_to(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def kiem_tra_nguyen_to_cung_nhau(m, n):
if kiem_tra_nguyen_to(m) and kiem_tra_nguyen_to(n):
return True
return False
M = int(input("Nhập số M: "))
N = int(input("Nhập số N: "))
if kiem_tra_nguyen_to_cung_nhau(M, N):
print("Hai số", M, "và", N, "là hai số nguyên tố cùng nhau.")
else:
print("Hai số", M, "và", N, "không phải là hai số nguyên tố cùng nhau.")
Tham Khảo:
#include <bits/stdc++.h>
using namespace std;
bool v(int y, int x) {
return 1 <= y && y <= 8 && 1 <= x && x <= 8;
}
int m(int y, int x, int ty, int tx) {
if (!v(y, x) || !v(ty, tx)) {
return -1;
}
deque<pair<int, pair<int, int>>> q;
q.push_back({y, {x, 0}});
bool vis[9][9] = {false};
vis[y][x] = true;
int dx[] = {-2, -2, 2, 2};
int dy[] = {-2, 2, -2, 2};
while (!q.empty()) {
int cy = q.front().first;
int cx = q.front().second.first;
int s = q.front().second.second;
q.pop_front();
if (cy == ty && cx == tx) {
return s;
}
for (int i = 0; i < 4; ++i) {
int ny = cy + dy[i];
int nx = cx + dx[i];
if (v(ny, nx) && !vis[ny][nx]) {
q.push_back({ny, {nx, s + 1}});
vis[ny][nx] = true;
}
}
}
return -1;
}
int main() {
int y, x, ty, tx;
cin >> y >> x >> ty >> tx;
cout << m(y, x, ty, tx) << endl;
return 0;
}
#include <iostream>
using namespace std;
int main() {
int n, X;
cin >> n >> X;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int lastOccurrence = -1;
for (int i = 0; i < n; i++) {
if (a[i] == X) {
lastOccurrence = i;
}
}
cout << lastOccurrence << endl;
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
pair<int, int> findMaxSubarray(vector<int> nums) {
int n = nums.size();
int maxSum = nums[0];
int currentSum = nums[0];
int start = 0;
int end = 0;
for (int i = 1; i < n; i++) {
if (currentSum < 0) {
currentSum = nums[i];
start = i;
end = i;
} else {
currentSum += nums[i];
end = i;
}
if (currentSum > maxSum) {
maxSum = currentSum;
}
}
return make_pair(start, end);
}
int main() {
int numTests;
cin >> numTests;
for (int t = 0; t < numTests; t++) {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
pair<int, int> maxSubarray = findMaxSubarray(nums);
cout << maxSubarray.first << " " << maxSubarray.second << endl;
}
return 0;
}
Dưới đây là mã chương trình Pascal để sắp xếp dãy số theo yêu cầu đã cho:
```pascal
program sorting;
const
MAX_N = 1000;
var
N, i, j, temp: integer;
arr: array[1…MAX_N] of integer;
oddArr, evenArr: array[1…MAX_N] of integer;
oddCount, evenCount: integer;
inputFile, outputFile: text;
begin
// Mở file input và đọc dữ liệu
assign(inputFile, 'sorting.inp');
reset(inputFile);
readln(inputFile, N);
for i := 1 to N do
read(inputFile, arr[i]);
close(inputFile);
// Sắp xếp mảng theo yêu cầu
oddCount := 0;
evenCount := 0;
for i := 1 to N do
begin
if arr[i] mod 2 = 1 then
begin
oddCount := oddCount + 1;
oddArr[oddCount] := arr[i];
end
else
begin
evenCount := evenCount + 1;
evenArr[evenCount] := arr[i];
end;
end;
// Sắp xếp mảng số lẻ tăng dần
for i := 1 to oddCount - 1 do
for j := i + 1 to oddCount do
if oddArr[i] > oddArr[j] then
begin
temp := oddArr[i];
oddArr[i] := oddArr[j];
oddArr[j] := temp;
end;
// Sắp xếp mảng số chẵn giảm dần
for i := 1 to evenCount - 1 do
for j := i + 1 to evenCount do
if evenArr[i] < evenArr[j] then
begin
temp := evenArr[i];
evenArr[i] := evenArr[j];
evenArr[j] := temp;
end;
// Mở file output và ghi kết quả
assign(outputFile, 'sorting.out');
rewrite(outputFile);
for i := 1 to oddCount do
write(outputFile, oddArr[i], ' ');
writeln(outputFile);
for i := 1 to evenCount do
write(outputFile, evenArr[i], ' ');
close(outputFile);
end.
```
Bạn có thể sao chép mã chương trình trên vào một tệp tin có tên `sorting.pas`, sau đó tạo một tệp tin `sorting.inp` và nhập dữ liệu theo định dạng đã cho. Chạy chương trình và kết quả sẽ được ghi vào tệp tin `sorting.out`.
var i,n:longint; a:array[1..1000] of longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
if a[i] mod 2=0 then
begin
inc(k);
b[k]:=a[i];
end
else
begin
inc(t);
c[t]:=a[i];
end;
for i:=1 to k-1 do
for j:=i+1 to k do
if b[i]<b[j] then
begin
d:=b[i];
b[i]:=b[j];
b[j]:=d;
end;
for i:=1 to t-1 do
for j:=i+1 to t do
if c[i]>c[j] then
begin
d:=c[i];
c[i]:=c[j];
c[j]:=d;
end;
for i:=1 to k do write(b[i],' ');
for i:=1 to t do write(c[i],' ');
end.
#include <bits/stdc++.h>
using namespace std;
int a,b,i;
int main()
{
cin>>a>>b;
int nn=min(a,b);
for (int i=nn; i>=1; i--)
{
if (a%i==0 && b%i==0)
{
cout<<i<<" ";
return 0;
}
}
cout<<1;
}
Program UCLN;
uses crt;
var a,b,x,y,tg: integer;
begin
clrscr;
write('Nhap a: '); readln(a); x:=a;
rite('Nhap b: '); readln(b); y:=b;
while a<>b do if a>b then a:=a-b else b:=b-a;
write('UCLN(',x,';',y,') = ',a);
Readln;
end.