当前位置:网站首页>[weekly pit] information encryption + [answer] positive integer factorization prime factor

[weekly pit] information encryption + [answer] positive integer factorization prime factor

2022-07-06 20:19:00 Crossin's programming classroom

Zero basis python Introductory tutorial :python666.cn

Hello everyone , Welcome to Crossin Programming classroom of !

Today, I'll give you one of my favorite topics : Information encryption

Of course , This problem is the fur of information encryption .

Please listen to :

A yuan and Qiqi pass notes in class , But I don't want to be found by others . So they agreed on an encryption method :

  1. Only for English or Pinyin in the information content ( That's the letter ) To encrypt , Other symbols remain intact

  2. Each letter moves backward 5 position , Become ciphertext , such as a->f,k->p

  3. If backward 5 More than z, Just fold back to the beginning of the letter , such as x->c

Please complete the encryption and decryption of this rule with a piece of code .

The reference sample :

【 encryption 】

Input :there is a vegetable in your teeth

Output :ymjwj nx f ajljyfgqj ns dtzw yjjym

【 Decrypt 】

Input :onz sn mzf izt

Output :jiu ni hua duo

Additional questions

Can you decrypt this text :

ild gdpsh sxktgvts xc p ldds, pcs x--
x iddz iwt dct athh igpktats qn,
pcs iwpi wph bpst paa iwt sxuutgtcrt.

Detailed answers and reference codes will be given in the next column , You can also refer to the code in the message of other students .

I look forward to your answers , I hope you can complete the whole series .

Simple code can be submitted directly in the message , Long code is recommended  paste.ubuntu.com  or  

codeshare.io  And other code sharing sites , Just copy the code and save it , You can get a share address , Very convenient .

For past questions, click the collection at the beginning of the article “ Every Monday ” Enter the view .


【 answer 】 Positive integer factorization prime factor

The original title is :【 Every Monday 】 Positive integer factorization prime factor

One idea of this question is :

  1. from 2 Start trying to divide the original number N

  2. If you can divide , The original number is updated to N//i, And the output i; If you can't divide it, keep trying , until N Divide by itself

  3. If there is a prime factor before , The last remaining i Is the last prime factor ; without , It shows that the original number is a prime number

The reason why there is no need to judge the divisor i Is it a prime number , Because i It's from 2 Start trying one by one , If it can be divided by a smaller number , Then it has been dealt with before . So what can be calculated i It must be the prime factor .

In addition, here is a small optimization point : Every time you try, you don't have to start from 2 Start , You can start with the previous prime factor .

Reference code :

n = input(' Enter the positive integer to be decomposed :')
start = 2
is_prime = True
while n > 1:     #  Keep breaking down n, Until it breaks down into 1
    for index in range(start, n + 1) :
        if n % index == 0:    # n Can be index to be divisible by 
            n //= index       # n=n//index
            if n == 1:
                if is_prime:
                    print(f'{index} Prime number ')
                else:
                    print(index) 
            else:             # index  It must be prime 
                print(f'{index} * ', end='')
                is_prime = False
            break
    start = index

_ Previous articles are recommended _

【 Every Monday 】 The archive


If you need to know Paid premium courses And Teaching Q & a service

Please be there. Crossin Programming classroom of Internal reply : 666

80f73da5b95e2ec34be7e9961d46eac7.jpeg

原网站

版权声明
本文为[Crossin's programming classroom]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061223232072.html