解决如下 while(num%质数因子==0) num=num/质数因子. 问题2: 比如10我们计算用for( 2 to sqrt num)过程就是这样 2-num=5. 5无法再没有(2, sqrt(num)】内的质数因子了.就直接退出了。 所以我们最后判断假如num最后大于1--如果1的话说明已经结束了 大于1就把num再次输出. 按照我们的逻辑来随便看个数...
int k; printf("请输入一个整数:"); scanf("%d", &k); printf("%d的所有质因子为:", k); primeFactors(k); return 0; } ``` 你可以将上述代码保存到一个以`.c`为后缀的文件中,然后使用C编译器进行编译和执行。
include <math.h> bool prim(int n){ if(n <= 1)return false;//不是素数 int i;int m = int(sqrt(n));// for(i = 2;i<=m;i++)if(n % i == 0)//有没有能整除的 return false;return true;} void main(){ int i;int a=2;int b;scanf("%d",&b);//输入b for(...
1. 已知如下形式的四位数 a2b3 能被23整除,编写程序求出这些四位数。2. 输出 100 以内的所有素数(质数)。3. 一个数如果恰好等于它的因子之和,这个数称为“完数”。例如 6 的因子有 1、2、3,而且 6 = 1 + 2 + 3,因此 6 是完数。编写程序找出 1000 以内的所有完数,并按下面格式输出: 6 its ...
算法笔记(c++)--求一个数的所有质数因子 先贴题目: 这题不难,恶心在理解上面。最后看评论知道了怎么回事: 2*2*3*3*5=180 按照这逻辑的话应该输入的数由一系列质数相乘出来,所以每次找到一个质数就要更新下输入数.。 问题1: 没问题的话一瞬间都是这么想的。更新后重新来一遍for。重新探索一遍质数。但是仔...