K
Khách

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.

Bài 3:           Ghép số

Cay cú vì lần trước không giải được bài toán của Tèo đưa ra. Trạng Tí quyết ăn thua đủ với Tèo bằng cách đấu trí. Lần này nhờ sự trợ giúp của công nghệ nên Trạng Tí bèn mò lên Google tìm một bài toán cực khó mang hơi thở của tin học để đố Tèo. Bài toán như sau:

Cho N số A1, A2, … An khác nhau (0<A<=9). Hãy ghép N số này để được một số là số nguyên tố.

Dữ liệu vào: Là file văn bản có tên ghepso.inp có cấu trúc như sau:

-         Dòng đầu tiên ghi số nguyên N (2<=N<=6)

-         Dòng tiếp theo ghi N số khác nhau: A1, A2, … An (các số nhập cách trống)

Kết quả: Ghi ra file ghepso.out là các số nguyên tố ghép được. Mỗi số ghi trên một dòng và theo thứ tự từ nhỏ đến lớn. Nếu không ghép được số nguyên tố nào thì ghi ra kết quả là -1

Lần này lại đến lượt Tèo vò đầu bứt tai không thể giải nổi bài toán này và đành cầu cứu tới các bạn thi học sinh giỏi môn tin học lớp 9 huyện Thanh Chương. Mong các bạn giải bài này giúp Tèo với nhé.

Ví dụ:

ghepso.inp

ghepso.out

2

1   3

13

31

2

2   4

-1

 

Giải thích: Test đầu tiên có 2 số (1  3) ta có 2 cách ghép thành số 13 và 31 đều là số nguyên tố. Ở test thứ 2 có 2 số (2  4) ta cũng có 2 cách ghép tạo thành 2 số 24 và 42 nhưng chúng đều không phải số nguyên tố nên có đáp án là -1

 

2
23 tháng 12 2021

#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
const ll maxn = 1e7+4;
const int m=1e9+7;

int n,a[15],x[100],kt=-1;

int check(int n)
{
    if(n<2) return 0;
    for(int i=2;i<=sqrt(n);i++) if(n%i==0) return 0;
    return 1;
}

void Try(int i,int sum)
{
    if(i==n)
    {
        if(check(sum)) 
        {
            cout<<sum<<"\n";
            kt=1;
        }
        return;
    }
    for(int t=1;t<=n;t++)
    {
        if(x[a[t]]==0)
        {
            x[a[t]]=1;
            Try(i+1,sum*10+a[t]);
            x[a[t]]=0;
        }
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    freopen("GHEPSO.INP","r",stdin);
    freopen("GHEPSO.OUT","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+1+n);
    Try(0,0);
    if(kt==-1) cout<<"-1\n";
}
    

23 tháng 12 2021

code đệ quy - quay lui đây nhé bạn

 

1 tháng 2 2020

#include <iostream>
#include <fstream>

using namespace std;

long int x[4],n,a[5001],kt[5001],ktvt[5001],MAXtong,dem=0;

int TRY(int i)
{
for(int j=x[i-1]+1;j<=n;j++)
if(kt[a[j]]==0)
{
x[i]=j;
kt[a[j]]=1;
if(i==3)
{

if(a[x[3]]==(float)(a[x[2]]+a[x[1]])/2||a[x[2]]==(float)(a[x[3]]+a[x[1]])/2||a[x[1]]==(float)(a[x[2]]+a[x[3]])/2)
{
dem++;
if(a[x[1]]+a[x[2]]+a[x[3]]>MAXtong)
{
MAXtong=a[x[1]]+a[x[2]]+a[x[3]];
}
}

}
else
TRY(i+1);
kt[a[j]]=0;
}
}
int main()
{
ifstream f("boba.inp");
f>>n;
for(int i=1;i<=n;i++)
{
f>>a[i];
}
x[0]=0;
MAXtong=-1000000000;
fill_n(kt,1001,0);
TRY(1);
cout<<dem<<endl;
if(dem>0)
{
cout<<MAXtong;
}
return 0;
}

Mình mới đạt tới trình độ quy hoạch động nên bạn thông cảm

Xin lỗi bạn, mình không hỗ trợ C. mình chỉ biết pascal thôi

const fi='tamhop.inp';
fo='tamhop.out';
var f1,f2:text;
a:array[1..100]of integer;
n,i,j,k,dem,max,t:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{--------------------------------xu-ly--------------------------------}
dem:=0; max:=0;
for i:=1 to n-2 do
begin
for j:=i+1 to n-1 do
begin
for k:=j+1 to n do
begin
if (a[i]=(a[j]+a[k])/2) or (a[j]=(a[i]+a[k])/2) or (a[k]=(a[i]+a[j])/2) then
begin
inc(dem);
t:=a[i]+a[j]+a[k];
if max<=t then max:=t;
end;
end;
end;
end;
writeln(f2,dem);
writeln(f2,max);
close(f1);
close(f2);
end.

viết ctrinh n≤ 10000 nguyên dương. Viết ra số lượng số nguyên tố và 10 giá trị số nguyên tố lớn hơn cả Dữ liệu vào: file B5.INP.TXT. Có dòng đầu là số n. Từ dòng kế ghi lần lượt n số cách nhau dấu cách hoặc xuống dòng KQ ra: ghi file B5.OUT.TXT dòng đầu ghi số lượng số nguyên tố dòng kế ghi 10 giá trị số nguyên tố lớn hơn cả được cách nhau bằng dấu cách BÀI 2 Viết chương trình...
Đọc tiếp

viết ctrinh n≤ 10000 nguyên dương. Viết ra số lượng số nguyên tố và 10 giá trị số nguyên tố lớn hơn cả Dữ liệu vào: file B5.INP.TXT. Có dòng đầu là số n. Từ dòng kế ghi lần lượt n số cách nhau dấu cách hoặc xuống dòng KQ ra: ghi file B5.OUT.TXT dòng đầu ghi số lượng số nguyên tố dòng kế ghi 10 giá trị số nguyên tố lớn hơn cả được cách nhau bằng dấu cách BÀI 2 Viết chương trình đọc các dòng trong một file văn bản độ dài dòng (255 ký tự, số dòng ≤ 50000). Tính ra số từ trong file( từ nằm trọn trên dòng), và dòng có số từ nhiều nhất là bao nhiêu từ, có bao nhiêu dòng như vậy. Dữ liệu vào : file B6-INT.TXT gồm nhiều dòng văn bản. KQ ra: file B6-OUT.TXT dòng đầu ghi tổng số từ vủa file, dong 2 ghi số từ nhiều nhất của 1 dòngvà số dòng có số từ nhiều nhất

1

Bài 1: 

const fi='b5.inp.txt';

fo='b5.out.txt';

var f1,f2:text;

a:array[1..255]of integer;

i,n,kt,j,dem:integer;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do 

 read(f1,a[i]);

dem:=0;

max:=1;

for i:=1 to n do

  if a[i]>1 then 

begin

kt:=0;

for j:=2 to trunc(sqrt(a[i])) do 

  if a[i] mod j=0 then kt:=1;

if kt=0 then 

begin

inc(dem);

if max<a[i] then max:=a[i];

end;

end;

writeln(f2,dem);

if dem=0 then writeln(f2,'Khong co so nguyen to trong day')

else writeln(f2,max);

close(f1);

close(f2);

end.

4 tháng 5 2019

Help me

5 tháng 5 2019

đây là toán mà ??

25 tháng 10 2020

help me!!!

28 tháng 10 2020

Copy thì cũng phải có tâm cho người ta nhìn hiểu đề chứ

Cho dãy số thế nào chứ thấy 2 đk trên

=>dãy là 0,1,2,3,..,n rồi

Vậy \(X_i\)=(i+1-i)*2=1*2=2 rồi chứ 4 và 5 ở đâu vậy bạn

28 tháng 4 2021

Bài 2:

Program HOC24;

var a: array[1..200] of integer;

i,d,n: integer;

begin

write('Nhap so phan tu N: '); readln(N);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i]);

end;

for i:=1 to n do if a[i] mod 3=0 then d:=d+1;

write('Co ',d,' phan tu chia het cho 3');

readln

end.

28 tháng 4 2021

Bài 3:

Program HOC24;

var a: array[1..30] of integer;

i,d,n: integer;

begin

write('Nhap so phan tu N: '); readln(N);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i]);

end;

d:=1;

for i:=1 to n do if a[i] mod 2=0 then d:=d*a[i];

write(Tich cac phan tu chia het cho 2 la: ',d);

readln

end.

16 tháng 6 2020

Cho mình hỏi nếu đếm các phần tử có giá trị lẻ trong xâu thì làm như thế nào vậy

uses crt;

var a:array[1..50]of integer;

t,i,n:integer;

begin

clrscr;

repeat

write('Nhap n='); readln(n);

until (0<n) and (n<=50);

for i:=1 to n do

begin

repeat

write('A[',i,']='); readln(a[i]);

until (0<=a[i]) and (a[i]<=32767);

end;

writeln('Day A=');

for i:=1 to n do

write(a[i]:4);

writeln;

t:=0;

for i:=1 to n do

if a[i] mod 2=1 then t:=t+a[i];

writeln('Tong cac so le la: ',t);

writeln('Cac so le trong day A la: ');

for i:=1 to n do

if a[i] mod 2=1 then write(a[i]:4);

readln;

end.