zoukankan      html  css  js  c++  java
  • 蓝桥杯 TC_荣耀之路

    南阳理工学院的新生交流题目
    思路
    先查询n,m之间素数个数,若个数为素数,则输出n,m的最小公倍数,否则输出n,m的最大公约数。
    数据范围不大,从min(n,m)到max(n,m)一路遍历,统计素数个数,再判断素数的个数是否为素数,若是,输出(n,m)最小公倍数,否则输出(n,m)的最大公约数。

    #include<iostream>
    #include<string.h>
    #include<matn.h> 
    int gcd(int a,int b)
    {
    	int t;
    	while(b!=0)
    	{
    		t=a;
    		a=b;
    		b=t%a;
    	}
    	return a;
    }
    int lcm(int a,int b)
    {
    	return a*b/gcd(a,b);
    }
    int judge(int a)
    {
    	int i;
    	for(i=2;i<sqrt(a);i++)
    	{
    		if(a%i==0)
    		{
    			return 0;
    		}
    	}
    	if(a==0||a==1)
    	{
    		return 0;
    	}
    	return 1;
    }
    
    int main()
    {
    	int nn;
    	scanf("%d%d",&nn);
    	while(nn--)
    	{
    		int n,m,prime=0,temp;
    		scanf("%d%d",&n,&m);
    		if(n<m)
    		{
    			temp=n;
    			n=m;
    			m=temp;
    		}
    		for(i=n;i<=m;i++)
    		{
    			if(judge(i))
    			{
    				prime++;
    			}
    		}
    		if(judge(prime))
    		{
    			printf("%d
    ",lcm(n,m));
    		}
    		else{
    			printf("%d
    ",gcd(n,m));
    		}
    	}
    	
    }
    
  • 相关阅读:
    winform_webApiSelfHost
    手机访问网站自动跳转到手机版
    Linux常用命令
    css居中
    固定菜单
    BOM操作写法实例
    表格(合并单元格)
    倒计时
    分享到插件
    jquery获得下拉框的值
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832316.html
Copyright © 2011-2022 走看看