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

    题目描述

    问题描述   求出区间[a,b]中所有整数的质因数分解。

    输入

      输入两个整数a,b。

    输出

      每行输出一个数的分解,形如k=a1*a2*a3...(a1< =a2< =a3...,k也是从小到大的)(具体可看样例)

    样例输入

    3 10
    
    

    样例输出

    3=3
    4=2*2
    5=5
    6=2*3
    7=7
    8=2*2*2
    9=3*3
    10=2*5

    Conclude:
    1.筛选出素数的方法
    2.输出比较多,用cin,cout会超时,改用printf输出
    输出格式的控制,尤其是*号的输出;
    3.数组的重复利用,其实不需要memset;


    #include <iostream>
    #include <cstring>
    using namespace std;
    int prime[10001];
    int c[50];
    
    void seekprime()//!!!!!!筛素数:原素乘以开方数 !!!!!! 
    {
        for(int i=2;i<=10000;i++)
            {
                for(int j=2;j<=100;j++)
                    if(i*j<=10000)
                        prime[i*j]=0;
            }
    }
    %/
    1. 利用合数都是由若干个素数组成的,所以,我们可以将较小的素数找出来之后 
    2. 然后将这个区间里面由这个素数组成的合数都去掉,就这样一直循环,直到没有 
    3. 合数由最小的质数组成为止!
    
    
    1. void sushu()//素数为0,合数为1   
    2. {  
    3.     int i=2,j;  
    4.     for(j=i*i;j<=9989899;j+=i)  
    5.     {  
    6.             prim[j]=1;  
    7.     }  
    8.     for(i=3;i<=3161;i+=2)//因为除2之外的偶数都是合数,所以将2另外考虑   
    9.     {//然后直接在奇数里面找就行了   
    10.         if(prim[i]) continue;   
    11.         for(j=i*i;j<=9989899;j+=i)  //!!!i*i???!!!
    12.         {  
    13.             prim[j]=1;  
    14.         }  
    15.     }  
    16. }  
    %/
    int main() { memset(prime,1,sizeof(prime)); seekprime(); int a,b; scanf("%d%d",&a,&b); for(int i=a;i<=b;i++) { if(prime[i]) printf("%d=%d ",i,i); else { int l=i; int k=0; for(int j=2;j<=10000;j++) { if(prime[j]) { while(l%j==0) { l=l/j; k++; c[k]=j; } } if(l==1) break; } printf("%d=%d",i,c[1]); for(int q=2;q<=k;q++) printf("*%d",c[q]); printf(" "); } } }
     
  • 相关阅读:
    web.xml文件的作用
    GitHub上最火的40个Android开源项目
    iOS 开发者必不可少的 75 个工具,你都会了吗
    canvas小知识
    最全的PHP开发Android应用程序
    Android系统在超级终端下必会的命令大全(adb shell命令大全)
    Android adb shell命令大全
    如何制作和部署war包
    android学习视频(实战项目演练)
    s:iterator标签的使用
  • 原文地址:https://www.cnblogs.com/biggan/p/7427653.html
Copyright © 2011-2022 走看看