Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
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
Bình luận
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; }
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; }
Code cho ai cần nhé
Ai full test cho xin code với ạ. Cảm ơn nhiều
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 =))
vãi thanh niên này lm biếng thấy bà cố
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);
} sai ở đâu ạ
tại bạn chx cách số một khoảng trắng sau khi in ra cout <<i<<" ";
sao full test dc vay mn mong mn giup
Dùng mảng cộng dồn bạn nhé!