连续地分解质因数

来源:互联网 发布:美团送餐员用什么软件 编辑:程序博客网 时间:2024/06/01 11:53
连续的数的因式分解
   第二次作业有一题分解质因数,这次需要各位找出一个数的连续质因数,如630=3*5*6*7;
那么它有3个连续的质因数。输入小于2^64
  • eg1输入· 630
  • 输出 5*6*7
  • eg2 输入520
        输出 4*5
#include<stdio.h>#include<stdlib.h>#define N 100void main(){int num, i = 2, j = 0, a[N], flag = 0;    //flag作为输入判断输入的数是否是素数的标志a[0] = 0;puts("Please input the number:");while (scanf("%d", &num)){puts("Resolve into factor of prime number:");printf("%d=", num);do{if (num <= 1)      //若输入1,0或负数,输出输入错误{flag = 2;puts("Input error!");break;}if (num%i != 0){i++;continue;}else{do{if (i == num&&a[0] == 0){flag = 1;break;}a[j] = i;num = num / i;j++;} while (num%i == 0);}i++;} while (i <= num);if (flag == 1)printf("1*%d", num);if (flag == 0){for (i = 0; i < j - 1; i++)printf("%d*", a[i]);printf("%d", a[j - 1]);}puts("\n\nPlease input the number:");}system("pause");}