首页 > 解决方案 > 为什么第一行不显示 10 个数字?

问题描述

count=0
num=1
while True:
    num+=1
    if count!=100:
        if count in [10,20,30,40,50,60,70,80,90]:
            if isPrime(num) and ispalindrome(num) ==True:
                count+=1
                print("%-6d"%(num))
        else:
            if isPrime(num) and ispalindrome(num) ==True:
                count+=1
                print("%-6d"%(num),end="")
    else:
        break

输出是:

2     3     5     7     11    101   131   151   181   191   313   
353   373   383   727   757   787   797   919   929   10301 
10501 10601 11311 11411 12421 12721 12821 13331 13831 13931 
14341 14741 15451 15551 16061 16361 16561 16661 17471 17971 
18181 18481 19391 19891 19991 30103 30203 30403 30703 30803 
31013 31513 32323 32423 33533 34543 34843 35053 35153 35353 
35753 36263 36563 37273 37573 38083 38183 38783 39293 70207 
70507 70607 71317 71917 72227 72727 73037 73237 73637 74047 
74747 75557 76367 76667 77377 77477 77977 78487 78787 78887 
79397 79697 79997 90709 91019 93139 93239 93739 94049 

第一行显示 11 个数字。但在下一行它显示了 10 个数字,这正是我所需要的。

标签: python

解决方案


count表示要找到第 n 个数字,因此 count 从 1 开始:count = 1


count = 1
num = 1
while count != 100:
    num += 1
    if count in [10, 20, 30, 40, 50, 60, 70, 80, 90]:
        if isPrime(num) and ispalindrome(num):
            count += 1
            print("%-6d" % (num))
    else:
        if isPrime(num) and ispalindrome(num):
            count += 1
            print("%-6d" % (num), end="")


推荐阅读