Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <fstream>
- using namespace std;
- ifstream f("prob3.in");
- ofstream g("prob3.out");
- int prim(int a)
- {
- if (a < 2)
- return 0;
- for (int i = 2; i * i <= a; i++)
- if (a % i == 0)
- return 0;
- return 1;
- }
- int determinant(int mat[10][10], int n)
- {
- int num1, num2, det = 1, index, total = 1;
- int temp[n + 1];
- for (int i = 0; i < n; i++) {
- index = i;
- while (mat[index][i] == 0 && index < n) {
- index++;
- }
- if (index == n) {
- continue;
- }
- if (index != i) {
- for (int j = 0; j < n; j++) {
- swap(mat[index][j], mat[i][j]);
- det = det * pow(-1, index - i);
- }
- }
- for (int j = 0; j < n; j++) {
- temp[j] = mat[i][j];
- }
- for (int j = i + 1; j < n; j++) {
- num1 = temp[i];
- num2 = mat[j][i];
- for (int k = 0; k < n; k++) {
- mat[j][k] = (num1 * mat[j][k]) - (num2 * temp[k]);
- }
- total = total * num1;
- }
- }
- for (int i = 0; i < n; i++) {
- det = det * mat[i][i];
- }
- return (det / total);
- }
- int main()
- {
- int n, i, j, x;
- int matrix[10][10];
- f >> n;
- for (i = 0; i < n; i++) {
- for (j = 0; j < n; j++) {
- f >> matrix[i][j];
- }
- }
- g << " Ati introdus matricea : " << endl;
- for (i = 0; i < n; i++) {
- for (j = 0; j < n; j++)
- g << matrix[i][j] << " ";
- g << endl;
- }
- int k = 0;
- x = determinant(matrix, n);
- g << " Determinantul : " << x << endl;
- if (x == 0) {
- g << " De la diagonala in jos e zero " << endl;
- }
- else {
- for (i = 0; i < n; i++) {
- if (prim(abs(matrix[i][i])))
- k++;
- }
- g << " Numere prime pe diagonala dupa zerografiere : " << k << endl;
- }
- for (i = 0; i < n; i++) {
- for (j = 0; j < n; j++)
- g << matrix[i][j] << " ";
- g << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement