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都是编程中常用的控制流语句,但它们在功能和用法上有一些区别。

  1. 功能:
  • while语句是一个循环语句,用于重复执行一段代码,直到给定的条件不再满足为止。它通常用于需要重复执行某个操作直到满足某个条件的情况。
  • if语句是一个条件判断语句,用于根据条件的真假来执行不同的代码块。它通常用于根据某个条件来决定程序的执行流程。
  1. 语法:
  • while语句的语法是:while (条件) { 代码块 }。当条件为真时,代码块会不断重复执行,直到条件为假时退出循环。
  • if语句的语法是:if (条件) { 代码块 }。当条件为真时,会执行代码块中的代码,否则跳过该代码块。
  1. 执行流程:
  • while语句会一直执行代码块,直到条件不再满足。如果条件一直为真,那么代码块会无限循环执行下去,这可能会导致程序崩溃或资源耗尽。
  • if语句只会根据条件的真假来决定是否执行代码块。一旦条件判断完成,程序会根据结果选择执行相应的代码块,然后继续执行后面的代码。

总结起来,while和if的主要区别在于功能和执行流程。while用于循环执行代码,直到条件不满足为止;而if用于根据条件判断来执行不同的代码块。在实际编程中,根据具体的需求和场景选择合适的控制流语句是非常重要的。