import sys import math n = int(input()) for i in range(2, int(math.sqrt(n))+1): while n % i == 0: print(i,end=' ') n = n // i if n > 1: print(n)
思路:
输入数字依次循环从2到数字的平方根相除取余,如果整除,则算1个因子,然后将除了的数进行下一次循环
最终如果剩余的数不为1,则没有整除,则剩余的数就是质数因子。
另外因为可能存在多个相同的因子,所以第一次判断的时候,用的是while,while和if的区别是:
1、while是如果条件为真,一直循环,直到条件为假
2、if是如果条件为真,则执行下面内容,然后执行后续内容。
while和if都是编程中常用的控制流语句,但它们在功能和用法上有一些区别。
- 功能:
- while语句是一个循环语句,用于重复执行一段代码,直到给定的条件不再满足为止。它通常用于需要重复执行某个操作直到满足某个条件的情况。
- if语句是一个条件判断语句,用于根据条件的真假来执行不同的代码块。它通常用于根据某个条件来决定程序的执行流程。
- 语法:
- while语句的语法是:
while (条件) { 代码块 }
。当条件为真时,代码块会不断重复执行,直到条件为假时退出循环。 - if语句的语法是:
if (条件) { 代码块 }
。当条件为真时,会执行代码块中的代码,否则跳过该代码块。
- 执行流程:
- while语句会一直执行代码块,直到条件不再满足。如果条件一直为真,那么代码块会无限循环执行下去,这可能会导致程序崩溃或资源耗尽。
- if语句只会根据条件的真假来决定是否执行代码块。一旦条件判断完成,程序会根据结果选择执行相应的代码块,然后继续执行后面的代码。
总结起来,while和if的主要区别在于功能和执行流程。while用于循环执行代码,直到条件不满足为止;而if用于根据条件判断来执行不同的代码块。在实际编程中,根据具体的需求和场景选择合适的控制流语句是非常重要的。