主页 > 手机  > 

C语言:质因数分解

C语言:质因数分解
题目:

已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。

分析:

     本题有三个小点需要注意:

        1.找出因子。

        2.判断因子是否为质数。

        3.比较因子大小。

故,采用模块化思想,分开实现,即采用函数单独判断。

代码: #include<stdio.h> //判断是否为质数,是则返回1,否则返回0 int is_prime(int x){ if(x<2) return 0; //小于2的数不是质数 for(int i=2;i*i<x;i++) if(x%i == 0) //能被整除的数不是质数 return 0; return 1; } //找较大的质因子,能找到则返回较大的质数,找不到则返回-1 int find_larger_prime(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ int p=i; int q=n/p; if(is_prime(q)) return p>q?p:q; } } return -1; } int main(){ int n; scanf("%d",&n); int larger_prime = find_larger_prime(n); if (larger_prime != -1) { printf("%d\n", larger_prime); } else { printf("not fond\n"); } getchar(); getchar(); return 0; } 测试: 样例输入 21 样例输出 7
标签:

C语言:质因数分解由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C语言:质因数分解