我们要求质因数,那么就选择采用遍历的方法,从2开始除直到该数本身寻找他的因数前提:要确保输入的整数是合数,不然计算没有结果。1、第一步:因为数的因数可能重复比如9=3*3。所以我们需要每次都要从2开始遍历这是我们就需要用到递归算法。2、第二步:我们用while循环,循环条件是知道结果为1时停止。3...
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...
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...
include <stdio.h> int isprime(int n){ int i;if(n<2)return 0;for(i=2;i*i<=n;++i)if(n%i==0)return 0;return 1;} int main(){ int n,i;while(scanf("%d",&n)==1){ for(i=n;i>0;i--){ if(n%i==0&&isprime(i)){ printf("%d\n",i);break;} } } return ...
C语言求质因数 #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<math.h>voidcheck_count();voidcombineNum(intx,inty,intz,intnum);voidprintDiamond(intx,inty);voidpurchaseChicken();floatcalculatePi();voidprimeJudge();voidperfectJudge();voidintimacyNumber();voidautomorphic(...
这个问题,首先,用筛选法找出质素,然后,遍历这个素以内的所有素数,找到质因数!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...
【C语言】正整数分解质因数 hello hello 我来了!今天就讲的是,C语言的一道经典题 “将一个正整数分解质因数”。例如:输入90,打印出90=2 *3 * 3 *5。 一、分析过程: 1、首先要理解质数的概念。 质数/素数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数...
C语言:求质因数的函数 #include <stdio.h>voidzys(inta) {inti; printf("%d=",a);for(i=2;i<=a;i++) {while(a%i==0) { printf("%d",i); a/=i;if(a!=1) printf("*"); } } } main() {inta=750,i,n; zys(a); getchar();...
首先,用筛选法找出质素,然后,遍历这个素以内的所有素数,找到最小质因数 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 enter...
质数不能分解质因数的原因:质数只能写成1和他本身相乘的形式,而1不是质数, 例如将42分解质因数:42=237 因此最大质因数就是7 除到7后2-sqrt(7)内的数都不能再被整除,所以得到了最大质因数 2-3题目描述 2-4解题思路 短除法 通过不断的递归调用,判断42是否是质数 ...