利用C语言求一个数的所有质因数 //求一个数的质因数 #include<stdio.h> 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 {...
我们要求质因数,那么就选择采用遍历的方法,从2开始除直到该数本身寻找他的因数前提:要确保输入的整数是合数,不然计算没有结果。1、第一步:因为数的因数可能重复比如9=3*3。所以我们需要每次都要从2开始遍历这是我们就需要用到递归算法。2、第二步:我们用while循环,循环条件是知道结果为1时停止。3...
这个问题,首先,用筛选法找出质素,然后,遍历这个素以内的所有素数,找到质因数!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> 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 ...
int m=int(sqrt(n));for(int i=2;i<=m;++i){ if(n%i==0)return 0;} return 1;} include<stdlib.h> int main(){ int k,a;printf("请输入一个整数");scanf("%d",&k);if(k<2&&k>10000){printf("error");exit(0);} printf("此整数的质因子为:");for(a=2;a<k;a++)...
include <stdio.h>void main(){int a,n,i;printf("请输入一个数\n");scanf("%d",&n);for(i=n-1;i>=1;i--){if(n%i==0){printf("最大质因数:%d\n",i);break;}}}
分解质因数 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。 现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。
include<stdio.h> include<math.h> int main(){int b,i,k;for(i=2;i<=100;i++){printf("%d=",i);b=i;k=2;while(k<=sqrt(i)){while(b%k==0){printf("%d",k);b/=k;if(b>1) printf("*");} k++;} if(b>1)printf("%d",b);printf("\n");} 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);}
while(i!=n)语句,i 在for 循环中增为3 ,就少一个质因子 2,同样当 i 增到 5 时也有两个 include<stdlib.h> include<stdio.h> int main(){ int n,i;printf("请输入一个正整数!\n");scanf("%d",&n);printf("%d=",n);for(i=2;i<n;i++){ while(i!=n){ if(n%i==0...