Trang chủ Tin Học Lớp 11 Ngày 3 :D Hiện tại ở Nghệ An đang có...

Ngày 3 :D Hiện tại ở Nghệ An đang có phong trào khởi nghiệp tại quê hương. Một trong những doanh nghiệp startup thành công tại Nghệ An là công ty cổ phần công

Câu hỏi :

Ngày 3 :D Hiện tại ở Nghệ An đang có phong trào khởi nghiệp tại quê hương. Một trong những doanh nghiệp startup thành công tại Nghệ An là công ty cổ phần công nghệ Gostream – một công ty chuyên về livestream trên các nền tảng facebook và google. Hiện tại, tài sản của công ty ước tính khoảng 5 triệu đô. Một điều khá thú vị là 2 trong 3 co - founder của công ty là cựu học sinh của trường THPT Chuyên – Đại học Vinh và thú vị hơn thuở còn đi học họ rất mê code. Hưởng ứng phong trào khởi nghiệp trên, một nhóm thanh niên mở công ty chuyên vể sửa điều hòa. Đừng nghĩ đây là việc dễ và ít tiền, mấy hôm nay nhà Mr Toàn hỏng điều hòa nhưng chưa gọi nổi thợ đến sửa đây. Tuy nhiên, không phải lúc nào công việc cũng dễ ăn cả. Hôm nay nhóm các bạn trẻ này gặp một cái điều hòa khá chuối. Chiếc máy điều hòa này phải dùng mật mã để khởi hành. Ở sau máy điều hòa có 1 dãy số gồm n số nguyên dương ai và 1 tờ giấy ghi chép rằng: Nếu muốn hưởng mát thì phải tìm ra được số cặp (i,j) (i<j) sao cho lcm(ai,aj)∗gcd(ai,aj) có chính xác 3 ước số. Định nghĩa : lcm là bội chung nhỏ nhất, gcd là ước chung lớn nhất của các số nguyên dương. Bạn hãy giúp nhóm các bạn trẻ giỏi về điện lạnh nhưng lại không giỏi code kia khắc phục tình trạng của chiếc máy điều hòa này nhé. Input Specification Dòng đầu tiên gồm số nguyên dương n ( 1≤n≤105). Dòng tiếp theo gồm n số nguyên dương ai ( 1≤ai≤106) Output Specification In ra số cặp (i,j)(i<j) thỏa mãn yêu cầu bài toán. Sample Input 5 1 2 2 3 4 Sample Output 2

image

Lời giải 1 :

#include <iostream>
#define maxn 1000005
using namespace std;
typedef long long ll;

inline int readInt() {char c;while(c=getchar(),c!='-'&&(c<'0'||c>'9'));bool sign=(c=='-');if(sign)c=getchar();int n=c-'0';while(c=getchar(),c>='0'&&c<='9')n=10*n+c-'0';return(!sign)?n:-n;}

bool np[maxn];
int n, a, lim, res;
int cnt[maxn];

void sieve() {
    res += cnt[2] * (cnt[2] - 1) / 2;
    res += cnt[1] * cnt[4];
    
    for (int i = 3; i <= lim; i += 2) {
        if (!np[i]) {
            res += cnt[i] * (cnt[i] - 1) / 2;
            if (1ll * i * i > lim) continue;
            res += cnt[1] * cnt[i * i];
            
            for (int j = i * i; j <= lim; j += i)
                np[j] = 1;
        }
    }
}

int main() {
    n = readInt();
    while (n--) {
        a = readInt();
        lim = max(lim, a);
        cnt[a]++;
    }
    sieve();
    cout << res;
}

Thảo luận

-- ồ =))
-- nice =)

Lời giải 2 :

//Thúy cute xỉu
#include<bits/stdc++.h>
#define ll long long
#define xau string
using namespace std;

int main()
{
 ios::sync_with_stdio(0);
 cin.tie(0);cout.tie(0);
 vector<bool> xet(1000005,true);
 xet[1]=false;
 for(int i=2; i*i<1000005; i++) 
 if(xet[i])   for (int e=i*i; e<1000005; e+=i)    xet[e]=false; 
 ll n, z, dem=0, dt=0, d1=0;
 cin>>n; 
 map<int,int> a;
 for (int i=0;i<n;i++)
 {
  cin>>z;
  if (xet[z])
  {
   a[z]++;
   dt+=a[z]-1;
  }
  if (z==1) d1++;
  else
  if ((int)(sqrt(z))==sqrt(z))
  {
      if (xet[sqrt(z)])
   dem++;
  }
 }
 cout<<dt+dem*d1;
}

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 11

Lớp 11 - Năm thứ hai ở cấp trung học phổ thông, gần đến năm cuối cấp nên học tập là nhiệm vụ quan trọng nhất. Nghe nhiều đến định hướng sau này rồi học đại học. Ôi nhiều lúc thật là sợ, hoang mang nhưng các em hãy tự tin và tìm dần điều mà mình muốn là trong tương lai nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK