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.
Em viết lại ý tưởng:
- Ta lập một hàm xét xem một số nguyên N có phải là SNT không.
+ nếu N <= 1 thì hiển nhiên không phải
+ nếu N >= 2: ta xét số dư của N cho các số từ 2 đến phần nguyên của căn N
* nếu N chia hết cho bất kỳ số nào trong khoảng [2; phần nguyên căn N] thì N không là SNT, ngược lại N là SNT.
- Áp dụng hàm đó vào dãy a(N), cho biến dem <-- 0;
+ xét từ a[1] trở đi đến a[n], nếu a[i] là SNT thì dem <-- dem+1. Vòng lặp thực hiện đến khi i = N.
- Thông báo giá trị của dem hoặc không có snt trong dãy nếu dem = 0
2:
#include <bits/stdc++.h>
using namespace std;
long long a[1000],i,n;
int main()
{
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
sort(a+1,a+n+1);
for (i=1; i<=n; i++) cout<<a[i]<<" ";
cout<<endl;
for (i=n; i>=1; i--) cout<<a[i]<<" ";
return 0;
}
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t;
int main()
{
cin>>n;
t=0;
for (i=1;i<=n; i++)
{
cin>>x;
if ((x<0) and (x%2!=0)) t=t+x;
}
cout<<t;
return 0;
}
a) Xác định bài toán
-Input: Dãy n số
-Output: Các số nguyên khác 0
b) Biểu diễn thuật toán
-Bước 1: Nhập n và nhập dãy số
-Bước 2: i←1;
-Bước 3: Nếu a[i]<>0 thì xuất a[i]
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Kết thúc
#include <bits/stdc++.h>
using namespace std;
long long a[1000],n,i;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>a[i];
for (i=1; i<=n; i++)
if (a[i]==0)
{cout<<i; break; }
return 0;
}
Tham khảo
B1: Nhập N, dãy số nguyên A, số nguyên k
B2: dem←0; i←1;
B3: Nếu i>N thì chuyển đến B6.
B4: Nếu A[i]>k thì dem←dem+1
B5: i←i+1; Quay lại B3.
B6: In dem ra màn hình và kết thúc.
1 ≤ N ≤ 10**9
1 ≤ N ≤ 10**9
Độ phức tạp lớn nhất O(log(10 ** 9))