题目描述
输入一个正整数nn,输出它的所有质数的因子。(如180180的质数因子为22、22、33、33、55)
输入格式
输入一个正整数nn。
输出格式
输出nn的所有质数的因子。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
//定义函数,判断传入参数是否为质数
int zs(int i){
int n = 0;
for (int j = 2; j < i; j++)
{
if (i%j==0)
{
n++;
break;
}
}
return n;
}
int main()
{
int n = 0;
scanf("%d",&n);
for (int i = 2; i <=n; i++)
{
//便历所有可能被n整除的数,因为1不是质数,所以起点从2开始
if (n%i==0&&zs(i)==0)
{
//求出能被n整除的数,并调用函数判断是否为质数
printf("%d ",i);
//改变n的值为除后值
n = n / i;
//将i回溯
i--;
}
}
}