首页 > 试题广场 >

编写程序,用户从键盘输入小于1000的整数,对其进行因式分解

[问答题]
编写程序,用户从键盘输入小于1000的整数,对其进行因式分解。例如,10=2×5,60=2×2×3×5。
num = int(input("input a int number less 1000:"))
print("%d"%num+"=",end='')
list =[]
for i in range(2,num+1):
    while True:
        if num%i==0:
            list.append(i)
            num= num/i
        else:
            break
for i in range(len(list)):
    if(i!=(len(list)-1)):
        print("%d"%list[i],end='')
        print("*", end='')
    else:
        print("%d" % list[i], end='')
发表于 2019-04-07 17:23:49 回复(0)
if __name__ == "__main__":
    num = input("请输入一个数\n")
    num = int(num)
    ret = []
    f = num
    k = 0
    while k < num:
        for i in range(2, f+1):
            if f %i == 0:
                ret.append(str(i))
                if i == f:
                    k=num
                f = int(f/i)
                break
        k+=1
    print( "*".join(ret))


发表于 2020-06-03 23:32:59 回复(0)
   def main():
       num = int(input())
       line = list()
       if num > 1000 or num <=2:
           print("输入不符合规则")
       else:
           for i in range(2 , num):
               while True:
                  if num%i == 0:
                      num = num/i
                      line.append(i)
                  else:
                      break
                  
      line_str = list()
      for i in line:
          line_str.append(str(i))
      print("*".join(line_str))
  
  
  if __name__ == "__main__":
      main()


发表于 2019-03-22 16:42:08 回复(0)
def issum(s,a=[],start=2):  if s <= 1:  return a  if start>s//start:
        a.append(s)  return a  for i in range(start,(s//start)+2):  if s%i==0:
            a.append(i)
            start=i  break  return issum(s//i,a,start)
b = [str(i) for i in issum(20)] print('*'.join(b))

编辑于 2019-03-06 17:10:13 回复(0)
x = int(input()) list1 = [str(x)] flag = False while not flag: for i in range(2, x): if i>= x**0.5 + 1: flag = True list1.append(str(x)) if x % i == 0: x = x // i list1.append(str(i)) print(i) break print(list1[0] + "=" + "*".join(list1[1:]))
发表于 2019-02-12 08:58:53 回复(0)
while True:改成 while E&gt;=i :
发表于 2021-07-22 07:27:50 回复(0)
while 1:
    t = int(input("input a number less than 1000: "))
    if t < 2 or t > 999:
        print("wrong number")
    else:
        break
print(t),
print("="),
i = 2
while 1:
    if t == i:
        print(i)
        break
    if t % i == 0:
        print(i),
        print(" * "),
        t = t / i
    else:
        i += 1

编辑于 2021-06-16 16:42:17 回复(0)
num = int(input('请输入一个小于1000的数:'))
factor = []
while num >1:
    for i in range(num - 1):
        k = i + 2
        if num % k == 0:
            factor.append(k)
            num = int(num / k)
            break
print(factor)


发表于 2020-07-31 15:27:36 回复(0)
发表于 2020-05-11 11:23:21 回复(0)
def resolved_num(num):  a = []
    str1 = str(num)+"="    while num > 1: for i in range(num-1):
        k = i + 2    if num % k == 0:  # print(k)
        a.append(k)
        num = int(num/k)  break  str2 = str1 + '*'.join('%s' % s for s in a)    return str2

编辑于 2019-12-07 00:17:32 回复(0)

int main()
{
	int ipt;
	scanf("%d", &ipt);
	for(int i=2; i<=ipt; i++)
	{
		while(ipt % i == 0)
		{
			printf("%d", i);
			ipt /= i;
			if(ipt != 1) printf("*");
		}
	}
	return 0;
}

发表于 2019-10-20 21:49:04 回复(0)
import  math
def  prime(n):
   if   n <2:
       return False   //小于2不能分解,等于1*本身
   for x in range(2,int(math.sqrt(n))+1):
       if n%x==0:
           return False
   return True
     
prime_list=[2]
for x in range(3,1000,2):
   if prime(x):
       prime_list.append(x)
         
n=int(input())
print('%d='%n, end='')
ans=[]
for x in prime_list:
   while n%x==0:
       ans.append(x)
       n//=x
   if n==1:
       break
print('x'.join(map(str,ans)))
发表于 2019-07-07 17:26:05 回复(0)
s=int(input("输入一个小于1000的整数:"))
a=[]

for i in range(2,s+1):
    while(s%i==0):
        a.append(i)
        s=s/i
        
    else:
        i=i+1
        
print(a)
b=[str(i) for i in a]
print(b)

s1=1
for i in range(len(a)):
    s1=s1*a[i]
    

print(s1,"=",'*'.join(b))
发表于 2019-07-05 11:13:26 回复(0)
import math
def prime(n):
    if n < 2:
        return False
    for x in range(2, int(math.sqrt(n))+1):
        if n % x == 0:
            return False
    return True
    
prime_list = [2]
for x in range(3, 1000, 2):
    if prime(x):
        prime_list.append(x)
        
n = int(input())
print('%d=' % n, end='')
ans = []
for x in prime_list:
    while n % x == 0:
        ans.append(x)
        n //= x
    if n == 1:
        break
print('x'.join(map(str,ans)))
发表于 2019-05-01 21:18:52 回复(0)
def main():
    """
    用户键盘输入一个小于1000的整数,对其进行因式分解
    :return:
    """
    num_str = input('input a number(2<= num < 1000):')
    num = int(num_str)
    line = list()
    if num > 1000 or num <= 2:
        print("输入不合法")
    else:
        for i in range(2, num+1):
            while True:
                if num % i == 0:
                    line.append(i)
                    num = num / i
                else:
                    break

    line_str = list()
    for i in line:
        line_str.append(str(i))
    print(num_str + '=' + '*'.join(line_str))


if __name__ == '__main__':
    main()
编辑于 2019-04-07 15:47:02 回复(0)