1.hàm kiểm tra số chính phương
2.hàm kiểm tra số nguyên tố
3.hàm sàng số nguyên tố
4.hàm tìm gxnn
5.viết một đoạn tìm gtlm
6.hàm kt xâu đối xứng hàm đảo ngược
7.hàm tìm bội chung của nhiều số
9.hàm đếm ước của 1 số
10.hàm phân tích ra thừa số của một số
11.đếm sao có bao nhiêu số chia hết
c++ nha
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
1. Hàm kiểm tra số chính phương
ll check(ll n)
{
if(pow((ll)(sqrt(n)),2)==n) return 1;
return 0;
}
2. Hàm kiểm tra số nguyên tố
ll check(ll n)
{
for(ll i=2;i<=sqrt(n);i++) if(n%i==0) return 0;
return n>1;
}
3. Hàm sàng số nguyên tố (maxn=$10^{7}$)
vector<bool> a(10000011,true);
void sangsonguyento()
{
a[0]=a[1]=false;
for(ll i=2;i*i<=10000000;i++)
{
if(a[i])
{
for(ll j=i;j*i<=10000000;j++)
{
a[i*j]=false;
}
}
}
}
4. Hàm tìm giá trị nhỏ nhất
ll check(ll n,ll a[])
{
ll min1=INFINITY;
for(ll i=0;i<n;i++)
{
min1=min(max1,a[i]);
}
return min1;
}
5. Hàm tìm giá trị lớn nhất
ll check(ll n,ll a[])
{
ll max1=-INFINITY;
for(ll i=0;i<n;i++)
{
max1=max(max1,a[i]);
}
return max1;
}
6. Hàm kiểm tra xâu đối xứng
ll check(str a)
{
str b=a;
reverse(b.begin(),b.end());
return b==a;
}
7. Hàm đảo ngược
ll check(str a)
{
str b=a;
reverse(b.begin(),b.end());
return b;
}
8. Hàm tìm bội chung của nhiều số (bonus tìm ước chung lớn nhất)
ll ucln(ll a,ll b)
{
ll t;
while(b!=0)
{
t=a%b;
a=b;
b=t;
}
return a;
}
ll check(ll n,ll a[])
{
ll s=a[0];
for(ll i=1;i<n;i++)
{
s=s/ucln(s,a[i])*a[i];
}
return s;
}
9. Hàm đếm ước của 1 số (giống câu 11)
ll check(ll n)
{
ll s=0;
for(ll i=0;i<sqrt(n);i++)
{
if(n%i==0) s+=2;
}
if(pow((ll)sqrt(n),2)==n) s++;
return s;
}
10. Hàm phân tích ra thừa số nguyên tố
void check(ll n)
{
for(ll i=2;i<sqrt(n);i++)
{
while(n%i==0)
{
cout<<i<<" ";
n/=i;
}
}
if(n!=1) cout<<n;
return;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
\begin{array}{c} \color{#FFFFFFff}{H}\color{#E7E7E7ff}{o}\color{#CFCFCFff}{r}\color{#B7B7B7ff}{i}\color{#9F9F9Fff}{z}\color{#878787ff}{o}\color{#6F6F6Fff}{n} \end{array} $\\$
`1.`
bool cp(int n) {
int x=sqrt(n);
return x*x==n;
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`2.`
// Thong thuong
bool nt(int n) {
if (n<2) return false;
for (int i=2; i*i<=n; i++)
if (n%i==0) return false;
return true;
}
// Nang cao
bool nt(int n) {
if (n==2 || n==3) return true;
if (n<2 || n%2==0 || n%3==0) return false;
for (int i=5; i*i<=n; i+=6)
if (n%i==0 || n%(i+2)==0) return false;
return true;
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`3.`
#define N 1000000 // Thay số 1000000 bằng chữ N
int a[N+3];
void sang() {
memset(a,1,sizeof(a));
a[0]=a[1]=0;
for (int i=2; i*i<=N; i++)
if (a[i])
for (int j=i*i; j<=N; j+=i)
a[j]=0;
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`4.`
// Hàm tự định nghĩa
int gtnn(int n, int a[]) {
int ans=INT_MAX;
for (int i=0; i<n; i++)
ans=min(a[i],ans);
return ans;
}
// Hàm đã định nghĩa sẵn
int gtnn(int n, int a[]) {
return *min_element(a,a+n); // Thêm dấu * để lấy giá trị
// bỏ thì sẽ lấy vị trí (iterator)
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`5.`
// Hàm tự định nghĩa
int gtln(int n, int a[]) {
int ans=INT_MIN;
for (int i=0; i<n; i++)
ans=max(a[i],ans);
return ans;
}
// Hàm đã định nghĩa sẵn
int gtln(int n, int a[]) {
return *max_element(a,a+n); // Thêm dấu * để lấy giá trị
// bỏ thì sẽ lấy vị trí (iterator)
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`6.`
bool dx(string s) {
string t=s;
reverse(t.begin(), t.end());
return t==s;
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`7.`
int lcm(int a, int b) {
return a*b/__gcd(a,b);
}
int giai(int n, int a[]) {
int ans=a[0];
for (int i=1; i<n; i++)
ans=lcm(ans, a[i]);
return ans;
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`9.`
int uoc(int n) {
int ans=0;
for (int i=1; i*i<=n; i++)
if (n%i==0) {
ans++;
if (i*i!=n) ans++;
}
return ans;
}
\begin{array}{c} \color{#a03c37}{-}\color{#ae514e}{-}\color{#bb6666}{-}\color{#c77b7e}{-}\color{#d29095}{-}\color{#dca6ab}{-}\color{#e6bcc2}{-}\color{#eed2d7}{-}\color{#f7e8eb}{-}\end{array} $\\$
`10.`
string ptich(int n) {
string ans="";
for (int i=2; i*i<=n; i++) {
while (n%i==0) {
ans+= to_string(i)+"*";
n/=i;
}
}
if (n>1) ans+=to_string(n);
else ans.pop_back(); // xóa dấu * cuối cùng nếu có
return ans;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin