zoukankan      html  css  js  c++  java
  • 分解质因数

    分解质因数(5分)

    题目内容:

    每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

    现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。

    提示:可以用一个函数来判断某数是否是素数。

    输入格式:

    一个整数,范围在[2,100000]内。

    输出格式:

    形如:

    n=axbxcxd

    n=n

    所有的符号之间都没有空格,x是小写字母x。abcd这样的数字一定是从小到大排列的。

    输入样例:

    18

    输出样例:

    18=2x3x3

    时间限制:500ms内存限制:32000kb
     
    参考代码:

    #include<stdio.h>
    int isprime = 1;
    void prime(int n){

      for(int i=2;i<n-1;i++){
        if(n%i==0){
        isprime = 0;
        break;
        }
      }
    }
    int main(){
      int n;
      int cnt=0;
      int a[100]={0};
      scanf("%d", &n);
      prime(n);//调用函数判断输入的数是否为素数
      int m=n;// 保存输入的数n
      if(isprime==1){
        printf("%d=%d",n,n);
      }else{
        int i=2;
        int j=0;
        int cnt=0;//计数变量
        while(n!=1){//这里不宜用for循环,注意选择合适的循环
          if(n%i==0){
          cnt++;
          a[j++]=i;//刷选出符合条件的i,依次保存到a数组,注意j++的用法
          n=n/i;
          }
          if(n%i!=0){//重复判断i是否能被n整除
          i++;
          }
        }

        printf("%d=",m);
        for(int i=0;i<cnt;i++){

          if(i<cnt-1){//最后一个数没有x符号,故要区别a[0]~a[cnt-1]和a[cnt]
            printf("%dx",a[i]);
          }else{
            printf("%d",a[i]);
          }
        }
      }
      return 0;
    }

  • 相关阅读:
    Spreadsheet 使用介绍
    一套完整自定义工作流的实现(2)
    《WF编程》系列之 承载工作流:持久性服务 Persistence Services
    SQL Server 2005函数
    ActiveReport
    SQLServer 2000中,存储过程和用户自定义函数具体的区别??
    MS SQL Server 2005 物理查询处理中的各个阶段(二)
    《WF编程》系列 承载工作流:持久化与跟踪
    C# WinForm自定义控件整理
    SQL Server2005使用CTE实现递归
  • 原文地址:https://www.cnblogs.com/zhhjthing/p/7782208.html
Copyright © 2011-2022 走看看