因式分解问题,代码比较清晰易懂(自我感觉)
习题 12:因子分解★输入n(1 <= n <= 1e9),有多组测试数据:
616
27
输出:
616 = 2^3 * 7 * 11
27 = 3^3
(注意输出空格,但行末不要有空格)
难度:for beginner
//代码如下
#include "stdio.h"
#include "math.h"
#include "conio.h"
bool isPrime(int n)
{
if(n==2) return true;
if(n<2||(n%2==0)) return false;
for(int i=3;i<=sqrt(n);i=i+2){
if(n%i==0)
return false;
}
return true;
}
int main()
{
int num;
printf("\nInput n:");
scanf("%d",&num);
if(isPrime(num)) printf("ddddddd");
for(int i=2;i<=num;i++)
{
if(isPrime(i)&&(num%i==0)){
printf("%d*",i);
num=num/i;
i--;
if(isPrime(num)){
printf("%d\n",num);
break;
}
}
}
}//帮忙测试下吧,谢谢