美文网首页
菜鸟编程学习(python&C--009)

菜鸟编程学习(python&C--009)

作者: 就如此简单 | 来源:发表于2018-10-14 17:21 被阅读0次

    Python 练习实例14(Python 100例)

    题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

    (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

    (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

    程序代码:

    s=int(raw_input('number:'))

    print "%d=" %(s),

    for i in range(2,s/2):

        while(s%i==0):

            if(s%i==0)and(s!=i):

                s=s/i

                print "%d*" %(i),

            elif(s==i):

                print s

                break

            else:

                break


    题目56  阶乘因式分解(一)   ( 南阳理工oj )

    时间限制:3000 ms  |  内存限制:65535 KB

    难度:2

    描述

    给定两个数m,n,其中m是一个素数。将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。

    输入

    第一行是一个整数s

    随后的s行, 每行有两个整数n,m。

    输出

    输出m的个数。

    样例输入

    2

    100 5

    16 2

    样例输出

    24

    15

    程序代码:

    方法一:

    #include<stdio.h>

    int main()

    {

            int k,sum;

            scanf("%d",&k);

            while(k--)

            {

                    int m,n;

                    scanf("%d,%d",&m,&n);

                    sum=0;

                    while(1)

                    {

                                sum=sum+m/n;

                                m=m/n;

                                if(m==0)

                                        break;

                    }

                    printf("%d\n",sum);

            }

    }

    方法二:

    #include <stdio.h>

    int main()

    {

        int i,j,sum=0,m,n,k,t,s=0;

        scanf("%d",&t);

        while(t--)

        {

            sum=0;

            scanf("%d,%d",&n,&m);

            for (j=n;j>0;j--)

            {

                for (i=2;i<=j/2;i++)

                {

                    k=j;

                    while(k%i==0)

                    {

                    if(k%i==0)

                         {

                            k=k/i;

                            if ((i==m))

                               {

                                   s=s+1;

                                }

                        }

                    }

                 }

          sum=sum+s;

            s=0;

            }

            printf("%2d\n",sum+1);

        }

    }


    39题     (C 语言经典100例)

    题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

    #include<stdio.h>

    int main()

    {

        int k,i,j,a[10]={1,3,4,5,6,7,8,9,11};

        scanf("%d",&k);

        for (i=0;i<10;i++)

        {

            printf("%3d",a[i]);

            if ((k>a[i])&&(k<=a[i+1]))

            {

                    for(j=9;j>i;j--)

                    {

                            a[j]=a[j-1];

                            a[i]=k;

                    }

            }

        }printf("\n");

    }


    相关文章

      网友评论

          本文标题:菜鸟编程学习(python&C--009)

          本文链接:https://www.haomeiwen.com/subject/hfrzaftx.html