Yêu cầu: Cho n số nguyên dương và một số nguyên dương X, hãy viết chương trình in các số chính phương lớn hơn X trong n số đó. Dữ liệu: Kết quả: In ra tất cả các số chính phương lớn hơn X ( mỗi số cách nhau một dấu cách trống ), nếu không có số nào thì in ra -1. Input Specification Dòng đầu tiên ghi hai số nguyên dương n(n≤105) và X(X≤109). Dòng thứ hai ghi n số nguyên dương ai(ai<109). Output Specification In ra tất cả các số chính phương lớn hơn X (mỗi số cách nhau một dấu cách trống và theo đúng thứ tự của mảng), nếu không có số nào thì in ra -1. Help me pls Câu này 20 điểm thôi đơn giản là vì tôi hết điểm :)(
2 câu trả lời
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
long long n, X, d = 0, i;
cin >> n >> X;
long A[n];
for (i = 0; i < n; i++) cin >> A[i];
for (i = 0; i < n; i++)
if (A[i] > X) {
if (sqrt(A[i]) == int(sqrt(A[i]))) {
d = 1;
cout << A[i] << " ";
}
}
if (d == 0) cout << -1;
return 0;
}
Thử đi nha chứ không biết có bị time limit không đâu :v
*Python
from math import sqrt
n,x=map(int,input().split())
a=list(map(int,input().split()))
dem=0
for i in range (n):
if (a[i]>x and int(sqrt(a[i]))*int(sqrt(a[i]))==a[i]):
print(a[i],end=' ')
dem+=1
if dem==0:
print(-1)
*C++:
#include<bits/stdc++.h>
using namespace std;
long long n,x,dem;
int main()
{
cin >> n >> x;
long long a[n];
for (long long i=0; i<n; i++)
{
cin >> a[i];
if (a[i]>x and int(sqrt(a[i]))*int(sqrt(a[i]))==a[i])
{
cout << a[i] << " ";
dem++;
}
}
if (dem==0) cout << -1;
}