//求一个数的质因数 #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 { n = n/i; } } } if(n>1...
1、第一步:因为数的因数可能重复比如9=3*3。所以我们需要每次都要从2开始遍历这是我们就需要用到递归算法。2、第二步:我们用while循环,循环条件是知道结果为1时停止。3、第三步:最后然后我们将一个一个的因数取出来,最后用一个if语句判断。什么是C语言?C语言是一门面向过程的、抽象化的通用程...
这个问题,首先,用筛选法找出质素,然后,遍历这个素以内的所有素数,找到质因数!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...
int main(){ int n,i;scanf("%d",&n);for(i=2;i<=n;i++){while(n%i==0)n/=i;if(n==1)break;} printf("%d\n",i);return 0;}
求n的阶乘 n!然后对n的阶乘分解质因数 看其中有多少个m 比如n = 5, m = 3 那么n!=120=2*2*2*3*5 其中有一个3 那么输出3 思路 不能直接求阶乘 那样一个是太大 再一个时间开销也多 直接对1->n 每个值做判断 其中有多少个质因子m 然后所有的相加就可以 ...
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;} ...
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;}}}
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);}
int i;for(i=2;i<n;i++)if(n%i==0){ f=0;break;} return f;} main(){ int m;int a[30];int flag,i,j=0,t;printf("Input a number:");scanf("%d",&m);flag=judge(m);if(flag==1)printf("The number %d is a prime number!",m);else { t=m;for(i=2;i<=t;...