好久没有写了。因为没有什么感觉,自己只是在重复。2022-10-19 我停在了这里第6章第24题。我重新从第1章开始做。也许大家要问一个7天就能学会,13天就能就业的学科,让你学了3年才到第6章。真是可笑。但是我就这样做了。而今天想写的不是我的努力。而是分享一些我的认识和感悟。
作为初学者。我能从第1章一直走到这里。前面遇到了很多很多难啃的题。我都一个一个咬碎吃透。但是到了这里我又回到了起点。
整整5天,下面这些只有8日到10日的记录,另一些在另一台电脑里
2023.03.08_20:16
06.24.01version,but is fail
number = 0
count = 0
divide = 2
while count <= 100:
number += 1
if number % divide == 0 and number % number == 0:
print(number, divide)
divide += 1
count += 1
2023.03.09_8:53
这道代码的难点在于数的除法
I think this code difficult point divide number.
我应该怎么告诉,电脑我想要的结果呢
I tall to computer I came up with the result
我的想法如下(方案一)
Ok! My idea is as follows:
1、确定100个素回数
No1.Determine the number of 100 prime palindromes
1.1、利用count变量作为定义100个数
No1.1、Use the count variable to define 100 numbers
1.2、利用divide变量来存储除数
No1.2、Use the divide variable to store divisor
2、利用循环来求结果
No2.Use the while or for cycle to find the result
调用No1的结果,不断累加变量count和变量divide的数值求结果
The result of calling No1 is to continuously add the values of the variables count and divide
2023.3.09_20:00 code is fail
NUMBER_COUNT = 10
div_n = 2
cou_n = 0
while cou_n < NUMBER_COUNT:
while cou_n <= cou_n / div_n:
if cou_n % div_n == 0:
print(cou_n, div_n)
# div_n += 1
cou_n += 1
2023.3.10_5:52
先尝试写备注
Try writing notes first
天无捷径,路在脚下
There is no shortcut to heaven, the road is under foot
方案2
plan number tow
1.求素数
1.Find a prime number
2.从求出的素数中,求回文数
2.From the obtained prime number, find the palindrome number
下面的代码还是不对
following down code is fail
divide_num = 2
for i in range(1, 10):
if i // divide_num != 1:
print(i)
divide_num += 1
2023.3.10_13:34
需要重新认真的分析书中的《程序清单6-7》
The program listing 6-7 in the book needs to be carefully reanalyzed
1.确认素数,条件是除数小于等于被除数除于2.
1.identify prime number, if the divisor is less than or equal to the dividend divided by2
divisor = 2
number = 20
while divisor <= number / 2:
if number % divisor == 0:
continue
divisor += 1
print(number)
print(number)
我一直在纠结我想自己先找到求素数的代码。大家可以看到这些代码最终都回到了原点。就像在和自己开玩笑一样。
也许悖逆自己内心做事就是这样的结果。过于纠结过于追求欲速则不达吧。我今天放下了从0开始的想法。学这接受前人写好的代码,在他们的基础上进行修改
这个是之前书里“程序清单6-7”代码段 在150页,我不理解为什么divisor <= number /2 ,说不好是嫉妒还是羡慕。就是想推翻这段代码自己编。上次好像也是类似的问题。
def isPrime(number):
divisor = 2
while divisor <= number / 2:
if number % divisor == 0:
return False
divisor += 1
return True
我现在不想这样了。有些事不需要浪费时间。
def isPrime(number):
divisor = 2
while divisor <= number / 2:
if number % divisor == 0:
return False
divisor += 1
return True
# 此处是我自己的今天设计的。
def is_pali(number):
if number >= 100:
a = number // 100
c = number % 100 % 10
if a == c:
return True
else:
return False
elif number <= 10:
a = number // 100
b = number % 100 // 10
if a == b:
return True
else:
return False
elif number <= 99:
b = number % 100 // 10
c = number % 100 % 10
if b == c:
return True
else:
return False
def printPrimeNumbers(number_of_primes):
number_of_primes_per_line = 10
count = 0
number = 2
while count < number_of_primes:
if isPrime(number):
if is_pali(number):
count += 1
print(format(number, ">4d"), end=" ")
if count % number_of_primes_per_line == 0:
print()
number += 1
count += 1
def main():
print("The first 100 prime number are")
printPrimeNumbers(1000)
main()