[Mảng 1 Chiều Cơ Bản]. Bài 10. Cân bằng nguyên tố

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem source:
28Tech
Problem type
Allowed languages
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho mảng số nguyên A[] gồm N phần tử, hãy liệt kê các chỉ số i trong mảng thỏa mãn : Tổng các phần tử bên trái i và tổng các phần tử bên phải i là các số nguyên tố

Gợi ý :

Đối với mỗi chỉ số i xây dựng 1 vòng for duyệt từ 0 tới i - 1 để tính tổng các số bên trái của i, 1 vòng for duyệt từ i + 1 tới N - 1 để tính tổng các phần tử nằm bên phải của i => Kiểm tra cả 2 tổng là số nguyên tố thì in ra chỉ số i, chú ý reset biến tổng trái và phải tại mỗi vòng lặp.


Đầu vào

Dòng đầu tiên là số nguyên dương N

Dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng


Giới hạn

1<=N<=1000

-10^3<=A[i]<=10^3


Đầu ra

In ra các chỉ số thỏa mãn trên một dòng, các số cách nhau một khoảng trắng


Ví dụ :

Input 01
5
53 5 69 47 19
Output 01
3

Comments

Please read the guidelines before commenting.



  • 0
    mango_K  commented on Dec. 5, 2024, 7:47 a.m.

    include<bits/stdc++.h>

    using namespace std; bool snt(int n) { if(n<=1) return 0; for(int i=2;i<=sqrt(n);i++){ if(n%i==0){ return 0; } } return 1; } int main(){ int n,s=0; cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; s+=a[i]; } for(int i=0;i<n;i++){ int tt=0; int tp=0; for(int j=0;j<i;j++){ s+=a[j]; } for(int k=i+1;k<n;k++){ s+=a[k]; } if(snt(tp)&&snt(tt)) cout<<i<<" "; } return 0; } sai ở đâu vậy??


  • 0
    khiem101701  commented on Dec. 3, 2024, 10:25 a.m.

    include <iostream>

    include <math.h>

    using namespace std;

    bool ktsnt(int x){ if(x <= 1) return false; else{ for (int i = 2;i <= sqrt(x);i++){ if(x % i == 0){ return false; } } } return true; }

    int main(){ int n; cin>>n; int arr[n]; for (int i = 0;i < n;i++){ cin>>arr[i]; } for(int i = 1;i < n-1;i++){ int tongtrai = 0; int tongphai = 0; for(int j = 0;j < i;j++){ tongtrai += arr[j]; } for(int j = i+1;j < n;j++){ tongphai += arr[j]; } if(ktsnt(tongtrai) && ktsnt(tongphai)){ cout<<i<<" "; } } return 0; }


  • 0
    Chu_manh_thang_cpp  commented on Nov. 30, 2024, 9:04 a.m.

    def snt(n): kt = True if n < 2: kt = False else: for i in range(2, int(n ** 0.5) + 1): if n % i == 0: kt = False break return kt n = int(input()) a = list(map(int,input().split())) for i in range(n): s1 = 0 s2 = 0 for j1 in range(i): s1 += a[j1] for j2 in range(i + 1, n): s2 += a[j2] if snt(s1) and snt(s2): print(i,end= ' ')


  • 0
    Dungx_2008  commented on Nov. 25, 2024, 3:10 p.m.

    include <bits/stdc++.h>

    define ll long long

    define name ""

    define N 100000

    using namespace std; int pre[N],a[N],n; bool prime(int n) { if(n<2) return false; for(int i=2;i<=sqrt(n);i++) { if(n%i == 0) return false; } return true; } int main() { iosbase::syncwith_stdio(0); cin.tie(0);cout.tie(0); if(fopen(name".INP","r")) { freopen(name".INP","r",stdin); freopen(name".OUT","w",stdout); } cin >> n; for(int i=1;i<=n;i++) cin >> a[i]; pre[0] = 0; pre[1] = a[1]; for(int i=2;i<=n;i++) pre[i] = pre[i-1] + a[i]; for(int i=2;i<n;i++) { if(prime(pre[i-1] - pre[0]) && prime(pre[n] - pre[i])) cout << i - 1 << " "; } return 0; }


    • 0
      Dungx_2008  commented on Nov. 25, 2024, 3:11 p.m.

      include <bits/stdc++.h>

      define N 100000

      using namespace std; int pre[N],a[N],n; bool prime(int n) { if(n<2) return false; for(int i=2;i<=sqrt(n);i++) { if(n%i == 0) return false; } return true; } int main() { cin >> n; for(int i=1;i<=n;i++) cin >> a[i]; pre[0] = 0; pre[1] = a[1]; for(int i=2;i<=n;i++) pre[i] = pre[i-1] + a[i]; for(int i=2;i<n;i++) { if(prime(pre[i-1] - pre[0]) && prime(pre[n] - pre[i])) cout << i - 1 << " "; } return 0; }


  • 0
    duongnc_pt  commented on Oct. 30, 2024, 3:48 p.m. edit 2

    Code cho ai cần nhé

    https://ideone.com/CQpDhx

    Ac cho mình xin ^


  • 0
    Hien_648  commented on Oct. 20, 2024, 12:53 a.m.

    Ai full test cho xin code với ạ. Cảm ơn nhiều


  • 0
    Thanhall201  commented on Aug. 4, 2024, 3:56 p.m.

    Vãi thật ae ạ! Bài này nó bắt các tổng trái và tổng phải của i đồng thời là số nguyên tố thì ta bỏ qua cả a[0] và a[n-1] vì bên trái a[0] là 0 kh phải snt bên phải a[n-1] là 0 cũng không phải là số nguyên tố. Tui mất cả tiếng để ktra đi ktra lại cái nộp thử nó lại đúng hết test =))


    • -3
      Nguyen_Hoang_Dat08  commented on Sept. 9, 2024, 7:47 a.m.

      vãi thanh niên này lm biếng thấy bà cố


  • -1
    hackerlo2803  commented on June 30, 2024, 7:45 p.m.

    include <bits/stdc++.h>

    using namespace std;

    int is_nt[1000001];

    void sang(){ memset(isnt, 1, sizeof(isnt)); isnt[0] = isnt[1] = 0; for (int i = 2 ; i < sqrt(1000000) ; i++){ for (int j = i*i ; j < 1000000 ; j+=i){ is_nt[j] = 0; } } }

    int main() { // iosbase::syncwith_stdio(false); // cin.tie(NULL); // cout.tie(NULL);

    sang();
    
    int n; cin >> n;
    
    int a[n];
    int sum = 0;
    for (int i = 0 ; i < n ; i++) {
        cin >> a[i];
        sum += a[i];
    }
    
    for (int i = 0 ; i < n ; i++){
        int left = 0;
        int right = 0;
        for (int t = 0 ; t <= i - 1 ; t++){
            left += a[t];
        }
        for (int p = n - 1 ; p >= i + 1 ; p--){
            right += a[p];
        }
        // cout << i << ". " << left << " " << right << "\n";
        if (is_nt[right] && is_nt[left] && right > 0 && left > 0) {
            cout << i;
            break;
        }
    }
    
    return 0;
    

    } sai ở đâu ạ


    • 0
      tranminhnhat_2k9  commented on July 16, 2024, 10:22 a.m.

      tại bạn chx cách số một khoảng trắng sau khi in ra cout <<i<<" ";


  • 0
    longhk2012  commented on June 2, 2024, 1:46 p.m.

    sao full test dc vay mn mong mn giup


    • -2
      hailuacx  commented on June 6, 2024, 3:03 a.m.

      Dùng mảng cộng dồn bạn nhé!