zoukankan      html  css  js  c++  java
  • C语言之基本算法34—分解质因数(方法一)

    //矩阵基础
    /*
    ==================================================================
    题目:输入一个正整数。将其分解为质因式,如:60=2*2*3*5;若本身是质数,则输出
    如:307是一个质数!

    ================================================================== */ #include<stdio.h> void main() { int n,m,c,i,k,y[40]; printf("输入一个正整数:"); scanf("%d",&n); while(n>0) { m=n; c=0; k=m/2; for(i=2;i<=k;i++) { while(m%i==0) { y[c++]=i; m/=i; } } if(m>1) y[c++]=m; if(c==1) printf("%d 是一个质数 ",n); else { printf("%d=%d",n,y[0]); for(i=1;i<c;i++) printf("*%d",y[i]); printf("."); } printf(" 继续输入一个正整数:"); scanf("%d",&n); } } /* ==================================================================== 评: 这个编法可能比較抽象!比較难理解的地方是m>1,c==1,m%i==0;m>1,则m至少为2,说明 至少有一个质因数(由于2,3,都是质数),所以储存质因子的数组y[]至少含一个元素。即c>=1; 若c==1,则y[]恰好有一个元素,必然是这个数它本身!

    所以这个数就是素数!m%i==0,说明m 能够被i整除,即i是m的因子,由于是从2開始的。所以必然为质数(读者若不明确,能够在温 习一下质数的性质。);m/i,是将m分解为一个数shu乘以质因数,然后通过for和while循环继续 寻找shu的质因数!

    直到找不到则循环结束,然后按格式输出就好! ===================================================================== */


  • 相关阅读:
    10/28总结
    10/27总结
    10/26总结
    10/25总结
    10/24总结
    毕业设计第二周整理规划
    毕业设计第一周第五天完成情况汇总
    毕业设计第一周第四天完成情况汇总
    毕业设计第一周第三天完成情况汇总
    毕业设计第一周第二天完成情况汇总
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7208396.html
Copyright © 2011-2022 走看看