当前位置:网站首页>Pat class a 1160 forever (class B 1104 forever)
Pat class a 1160 forever (class B 1104 forever)
2022-07-05 02:46:00 【Handsome BIA】
“Forever number” is a positive integer A with K digits, satisfying the following constrains:
the sum of all the digits of A is m;
the sum of all the digits of A+1 is n; and
the greatest common divisor of m and n is a prime number which is greater than 2.
Now you are supposed to find these forever numbers.
Input Specification:
Each input file contains one test case. For each test case, the first line contains a positive integer N (≤5). Then N lines follow, each gives a pair of K (3<K<10) and m (1<m<90), of which the meanings are given in the problem description.
Output Specification:
For each pair of K and m, first print in a line Case X, where X is the case index (starts from 1). Then print n and A in the following line. The numbers must be separated by a space. If the solution is not unique, output in the ascending order of n. If still not unique, output in the ascending order of A. If there is no solution, output No Solution.
Sample Input:
2
6 45
7 80
Sample Output:
Case 1
10 189999
10 279999
10 369999
10 459999
10 549999
10 639999
10 729999
10 819999
10 909999
Case 2
No Solution
Their thinking : By topic , We roughly need to complete a prime sieve and a gcd( Find the greatest common divisor ), Then you can search directly and violently A Number of numbers , Save the answers with an adjacency table . So far, the idea is very simple , But in this way, you will find that it has timed out . Here is an optimization method , According to the meaning , We can find each one A Last number , It must be 9. Because of satisfaction gcd(A,A + 1) > 2 The situation of , Only A The last number is 9 The situation of , If you don't understand , Find a few examples to bring in , such as ,A = 8, be gcd(8,9) == 1 and A = 19 ,gcd(10,2) = 2.(gcd Inside is m,n). Then we can enumerate directly from the hundreds ( Enumerating from ten digits will still timeout ).
The linear screen can be used without , Because the prime number of this topic is not too large 90, You can use whatever prime sieve you like
#include<bits/stdc++.h>
using namespace std;
const int N = 100;
int primes[N],cnt = 0;
bool st[N];
void get_priem(int n) // Prime sieve
{
for (int i = 2; i <= n; i ++ )
{
if(!st[i]) primes[cnt ++ ] = i;
for (int j = 0 ;primes[j] * i <= n; j ++ )
{
st[primes[j] * i] = 1;
if(i % primes[j] == 0) break;
}
}
}
int gcd(int a,int b) // gcd
{
return b ? gcd(b,a % b) : a;
}
int cal(int n) // Add the digits
{
int num = 0;
while(n > 0)
{
num += (n % 10);
n /= 10;
}
return num;
}
int main()
{
int k,m,t;
scanf("%d",&t);
get_priem(N);
for (int Case = 1; Case <= t; Case ++ )
{
printf("Case %d\n",Case);
scanf("%d %d",&k,&m);
bool flag = 0;
vector<int> v[100];
for (int i = pow(10,k - 1) + 99; i <= pow(10,k) - 1; i += 100 )
{
int num = cal(i);
if(num == m)
{
int n = cal(i + 1);
int d = gcd(n,m);
if(!st[d] && d > 2)
{
v[n].push_back(i);
}
}
}
for (int i = 0; i < 90 ; i ++ )
{
for (int j = 0; j < v[i].size();j ++ )
{
printf("%d %d\n",i,v[i][j]);
flag = 1;
}
}
if(!flag) printf("No Solution\n");
}
return 0;
}
Conclusion
The subject is pat One of the few topics that will card time complexity , The optimization method is also very special , In general, the knowledge points investigated are quite many , Finally, try it by the way markdown Editor .
边栏推荐
- El select, El option drop-down selection box
- 2. Common request methods
- 【LeetCode】501. Mode in binary search tree (2 wrong questions)
- Good documentation
- Erreur de type de datagramme MySQL en utilisant Druid
- Character painting, I use characters to draw a Bing Dwen Dwen
- Learn game model 3D characters, come out to find a job?
- Sqoop安装
- Eight days of learning C language - while loop (embedded) (single chip microcomputer)
- Unpool(nn.MaxUnpool2d)
猜你喜欢

Bert fine tuning skills experiment

Introduce reflow & repaint, and how to optimize it?

Design and implementation of high availability website architecture

2021 Li Hongyi machine learning (2): pytorch

openresty ngx_lua执行阶段

丸子百度小程序详细配置教程,审核通过。

Chinese natural language processing, medical, legal and other public data sets, sorting and sharing

this+闭包+作用域 面试题

"C zero foundation introduction hundred knowledge and hundred cases" (72) multi wave entrustment -- Mom shouted for dinner

el-select,el-option下拉选择框
随机推荐
Vb+access hotel service management system
Last words record
Why are there fewer and fewer good products produced by big Internet companies such as Tencent and Alibaba?
Tencent cloud, realize image upload
this+闭包+作用域 面试题
Bert fine tuning skills experiment
平台入驻与独立部署优缺点对比
Port, domain name, protocol.
Linux安装Redis
【LeetCode】110. Balanced binary tree (2 brushes of wrong questions)
When the low alcohol race track enters the reshuffle period, how can the new brand break the three major problems?
Utilisation simple de devtools
Medusa installation and simple use
Why do you understand a16z? Those who prefer Web3.0 Privacy Infrastructure: nym
Breaking the information cocoon - my method of actively obtaining information - 3
ELFK部署
Use the difference between "Chmod a + X" and "Chmod 755" [closed] - difference between using "Chmod a + X" and "Chmod 755" [closed]
How to make OS X read bash_ Profile instead of Profile file - how to make OS X to read bash_ profile not . profile file
Last week's hot review (2.7-2.13)
Talk about the things that must be paid attention to when interviewing programmers