C语言程序作业4(穷举法)(函数)(最小公倍数)(最大公因数)(阶乘和)(判断素数)

 

#include<stdio.h>  

#include<math.h>   

int GCF(int a, int b) 

{  

    if (a < b) 

{  

        int x = b;  

        b = a;  

        a = x;  

    }  

    for (int i = b; i >= 1; i--)

{ 

        if (a % i == 0 && b % i == 0)

{  

            return i;  

        }  

    }  

    return 1;

}  

int LCM(int a, int b)

{  

    return (a * b) / GCF(a, b);  

}    

int main()

{  

int a, b;  



    printf("Input a,b:");  



    scanf("%d,%d", &a, &b);  



    if (a > 0 && b > 0) {  



        printf("Least Common Mutiple of %d and %d is %d\n", a, b, LCM(a, b));  



    } else {  



        printf("Input number should be positive!\n");  



    }  


    return 0;  

}
正确答案:
程序语言 C/C++
#include<stdio.h>

#include<stdlib.h>

int Lcm(int a,int b);

int main()

{

     int a,b,x;

     printf("Input a,b:");

     scanf("%d,%d",&a,&b);

     x=Lcm(a,b);

     if(x!=-1)

         printf("Least Common Mutiple of %d and %d is %d\n",a,b,x);

     else

         printf("Input number should be positive!\n");

     //system("pause");

     return 0; 

}

//函数功能:计算a和b的最小公倍数,输入负数时返回-1

int Lcm(int a,int b)

{

     int i;

     if(a<=0 || b<=0)

         return -1;

     for(i=1;i<b;i++)

     {

         if(i*a%b==0)

              return i*a;

     }

     return b*a;

}


用例1:
输入
16,24

输出
Input a,b:Least Common Mutiple of 16 and 24 is 48

用例2:
输入
-16,24

输出
Input a,b:Input number should be positive!

 

#include<stdio.h>  

#include<math.h>   

int GCD(int a, int b) 

{  

    if (a < b) 

{  

        int x = b;  

        b = a;  

        a = x;  

    }  

    for (int i = b; i >= 1; i--)

{  

        if (a % i == 0 && b % i == 0)

{  

            return i;  

        }  

    }  

    return 1;   

}  

int main()

{

int a, b;  

    printf("Input a,b:");  

    scanf("%d,%d", &a, &b);  

    if (a > 0 && b > 0) {  



        printf("Greatest Common Divisor of %d and %d is %d\n",a,b,GCD( a,  b));  



    } else {  

        printf("Input number should be positive!\n");  

    } 

    return 0;  

}
正确答案:
程序语言 C/C++
#include<stdio.h>

#include<stdlib.h>

int Gcd(int a,int b);

int main()

{

     int a,b,x;

     printf("Input a,b:");

     scanf("%d,%d",&a,&b);

     x=Gcd(a,b);

     if(x!=-1)

         printf("Greatest Common Divisor of %d and %d is %d\n",a,b,x);

     else

         printf("Input number should be positive!\n");

     //system("pause");

     return 0; 

}

//函数功能:计算a和b的最大公约数,输入负数时返回-1

int Gcd(int a,int b)

{

     int i,t;

     if(a<=0 || b<=0)

         return -1;

     t=a<b?a:b;

     for(i=t;i>0;i--)

     {

         if(a%i==0 && b%i==0)

              return i;

     }

     return 1;

}


用例1:
输入
16,24

输出
Input a,b:Greatest Common Divisor of 16 and 24 is 8

用例2:
输入
-16,24

输出
Input a,b:Input number should be positive!

 

我的答案:
#include<stdio.h>  

#include<math.h>  

  

long Fact(int n)  

{  

 int i;  

 long result=1;  

 for(i=2;i<=n;i++)  

 {  

 result*=i;  

 }  

 return result;  

}  

  

int main()  

{  

 int n,i;      

int m=0;  

 printf("Input n:");  

 scanf("%d",&n);  

 for(i=1;i<=n;i++)  

 {  

 m+=Fact(i);  

 }  

 printf("1!+2!+…+%d!=%d\n",n,m);  

 return 0;  

}
正确答案:
程序语言 C/C++
#include<stdio.h>

#include<stdlib.h>

int FactSum(int n);

int main()

{

     int i,n,sum;

     printf("Input n:");

     scanf("%d",&n);

     sum=FactSum(n);

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

     //system("pause");

     return 0; 

}

//函数功能:计算1!+2!+3!+4!+5!+…+n!

int FactSum(int n)

{

     int i,p=1,s=0;

     for(i=1;i<=n;i++)

     {

         p=p*i;

         s=s+p;

     }

     return s;

}


用例1:
输入
10

输出
Input n:1!+2!+…+10!=4037913

 

#include <stdio.h>       

#include<math.h>    

int is_prime(int n) {  

    if (n <= 1) {  

        return 0;  

    }  

    for (int i = 2; i <= n/2; i++) {   

        if (n % i == 0) {  

            return 0;  

        }  

    }  

    return 1;  

}  

  

int main() {  

    int n;  

    printf("Input n:");  

    scanf("%d", &n );

    for(int a=2; a<=n; a++) {  

        if (is_prime(a)) {  

            printf("%d\t", a);  

        }  

    }  

    return 0;  

}
正确答案:
程序语言 C/C++
#include<stdio.h>

#include<stdlib.h>

int IsPrime(int x);

int main()

{

     int i,n;

     printf("Input n:");

     scanf("%d",&n);

     for(i=2;i<=n;i++)

     {

         if(IsPrime(i))

              printf("%d\t",i);

     }

     printf("\n");

     //system("pause");

     return 0; 

}

//函数功能:判断x是否是素数,是素数返回1,否则返回0

int IsPrime(int x)

{

     int i;

     if(x<=1)

         return 0;

     for(i=2;i<x;i++)

     {

         if(x%i==0)

              return 0;

     }

     return 1;

}


用例1:
输入
10

输出
Input n:2 3 5 7

 

posted @ 2023-11-29 23:20  ZDhr  阅读(81)  评论(0编辑  收藏  举报