Tổng số bài gửi : 152 Join date : 23/04/2022 Age : 41 Đến từ : THPT Chuyên Nguyễn Tất Thành - Yên Bái
Tiêu đề: KTLT 9) SỐ ĐẸP 2 Tue May 10, 2022 4:44 pm
9) SỐ ĐẸP 2 Một số được gọi là đẹp nếu tổng bình phương các chữ số của nó (trong dạng biểu diễn thập phân) là một số nguyên tố. Ví dụ, 12 là một số đẹp vì 12+22 = 5 – số nguyên tố. Các số đẹp được đánh số theo thứ tự tăng dần của giá trị, bắt đầu từ 1 trở đi. Yêu cầu: Cho số nguyên n (1 ≤ n ≤ 10 000). Hãy tìm số đẹp thứ n. Dữ liệu: Vào từ file văn bản BEAUTY2.INP, gồm nhiều tests, mỗi test cho trên một dòng chứa một số nguyên n. Kết quả: Đưa ra file văn bản BEAUTY2.OUT, kết quả mỗi test đưa ra trên một dòng. Ví dụ: BEAUTY2.INP 1 2 6 BEAUTY2.OUT 11 12 23
hahung413
Tổng số bài gửi : 16 Join date : 10/05/2022
Tiêu đề: Re: KTLT 9) SỐ ĐẸP 2 Thu May 12, 2022 3:18 pm
Code:
#include <bits/stdc++.h>
#define maxc 100001 using namespace std;
int dem,n;
int a[maxc],c[maxc];
bool b[maxc];
void sang() { memset(b,true,sizeof(b)); b[1] = false; for(int i =1; i <= 10000; i++) { int j = 2; if(b[i]) while(i*j <= 10000) { b[i*j] = false; j++; } }
} void sinh() { for(int i =1; i <=10000; i++) c[i] = c[i/10] + (i % 10)*(i % 10); } void nhap() { cin>>n; } void sol() { sang(); sinh(); for(int i =1; i <= 10000; i++) if(b[c[i]]) a[++dem] = i; cout<<a[n]; } int main() { ios_base::sync_with_stdio(0); nhap(); sol(); }
Admin likes this post
Admin Admin
Tổng số bài gửi : 152 Join date : 23/04/2022 Age : 41 Đến từ : THPT Chuyên Nguyễn Tất Thành - Yên Bái
Tiêu đề: Re: KTLT 9) SỐ ĐẸP 2 Thu May 12, 2022 4:44 pm
- Tổ chức các hàm: tongbp (u) - tính tổng bình phương các chữ số của u; ngto(u) - kiểm tra u có là nguyên tố. Hàm kiemtra(u) - kiểm tra u là số đẹp. Hàm tìm sodepn(u) - trả về số đẹp thứ u. - Tìm Tmax là giá trị lớn nhất của input. - Gọi hàm tìm sodepn(Tmax) thu được mảng a có Tmax phần tử. Với mỗi T[i] thì đưa a[t[i]].
dobinhminh01
Tổng số bài gửi : 14 Join date : 10/05/2022
Tiêu đề: Re: KTLT 9) SỐ ĐẸP 2 Sat May 14, 2022 5:26 pm
Code:
#include <bits/stdc++.h>
using namespace std; bool ngto[10000]; int test=1,n,sum=0,coun; void sangnt() { memset(ngto,true,sizeof(ngto)); ngto[0] = 0; ngto[1] = 0; for (int i=2; i<=10000; i++) if (ngto[i] == 1) for (int j=2*i; j<=10000; j+=i) ngto[j] = 0; }
Tiêu đề: Re: KTLT 9) SỐ ĐẸP 2 Sun May 15, 2022 3:09 pm
Code:
#include <iostream> #include <fstream> #include <math.h> using namespace std; int rmax,c[10000],a[10000],n=0; bool nt(int u) { if (u<=1) return false; if (u<=3) return true; if (u % 2==0) return false; for (int i=3;i<=sqrt(u);i+=2) if (u%i==0) return false; return true;
} bool kt(int u) { int t=0; while (u>0) { if (u<10) { t=t+(u%10)*(u%10); break; } t=t+(u%10)*(u%10); u=u / 10; } if (nt(t)) return true; else return false; } void xuli() {
ifstream ip("beauty2.inp"); ofstream op("beauty2.out"); rmax=0;; while (!ip.eof()) { n++; ip >> a[n]; rmax=max(rmax,a[n]); } int i=0; int j=0; while (i<=rmax) { j++; if (kt(j)==true) { i++; c[i]=j; } } for (int i=1;i<=n;i++) op << c[a[i]] << endl ; } int main() { xuli(); return 0; }
meliodasssf
Tổng số bài gửi : 71 Join date : 10/05/2022
Tiêu đề: Re: KTLT 9) SỐ ĐẸP 2 Mon May 16, 2022 10:03 pm
Code:
/*Meliodasssf*/
#include<bits/stdc++.h> using namespace std; #define forl(i,a,b) for (int i=a; i<=b; i++) #define forr(i,a,b) for (int i=a; i>=b; i--) #define max3(a,b,c) max(a,max(b,c)) #define min3(a,b,c) min(a,min(b,c))