void function(int n) { int sum = n; int i; for(i=2;i*i<=n;++i) { if(n%i == 0) { printf("%d ",i); while(n%i == 0) //排除掉已包含的这个质因数,比如20,第一个质因数是2,20/2=10,然后10/2=5 { n = n/i; } } } if(n>1) { printf("%d\n",n); } else { p...
求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。 输出 对于每组数据,输出N的质因数的个数。 样例输入 120 200 样例输出 5 5 提示 注意1不是N的质因数;若N为质数,N是N的...
1 打开Dev-C++ 2 写好头函数#include<stdio.h> 3 写好主函数 4 if里进行判断是否有因数和判断因数是不是质因数,如果有质因数则输出int j,k;int flag;flag=0;scanf("%d",&k);for(j=2; j<k; j++) { if((!(k%j))&&(IsPrime(j))) { flag=1; printf("%d\t",j); }}if(flag...
我们要求质因数,那么就选择采用遍历的方法,从2开始除直到该数本身寻找他的因数前提:要确保输入的整数是合数,不然计算没有结果。1、第一步:因为数的因数可能重复比如9=3*3。所以我们需要每次都要从2开始遍历这是我们就需要用到递归算法。2、第二步:我们用while循环,循环条件是知道结果为1时停止。3...
i; //重新赋值 i = 2; //重新遍历 } } printf("%d=%d", y, a[0]); //输出原数、等号、第一个质因数 for(i = 1; i < j; i++) printf("×%d", a[i]); //如果存在第二个质因数,则继续输出 return 0;} ...
scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){ while(n!=i){ if(n%i==0){ printf("%d*",i);n=n/i;} else break;} } printf("%d",n);}
这个问题,首先,用筛选法找出质素,然后,遍历这个素以内的所有素数,找到质因数!include <stdio.h> define MAX 1001 char a[MAX];int main(){ int i,j;for(i = 2; i < MAX; i++){ if(a[i] == 0)for(j = i+i; j < MAX; j += i)a[j] = 1;} int n;printf("Please...
#include<stdio.h>// 函数用于分解质因数voidprimeFactorization(intn){printf("%d = ",n);// 从最小的质数2开始除for(inti=2;i<=n;i++){while(n%i==0){printf("%d",i);n/=i;if(n!=1){printf(" * ");}}}printf("\n");}intmain(){intnum;printf("请输入一个正整数: ");scanf("...
C语言分解质因数(质因子)这是一个C语言 do while 循环示例:把正整数 n 分解成质因数相乘的形式。例如 24=2×2×2×3。 问题分析 输入:一个正整数n。 输出:形如 24=2×2×2×3 的质因子相乘的形式。 本题中我们需要重复判断从 2 开始而且小于 n 的每一个自然数 i 是否是正整数 n 的因数,而一个...