九度 1493:公约数
题目描述:
给定两个正整数a,b(1<=a,b<=100000000),计算他们公约数的个数。
如给定正整数8和16,他们的公约数有:1、2、4、8,所以输出为4。
输入:
输入包含多组测试数据,每组测试数据一行,包含两个整数a,b。
输出:
对于每组测试数据,输出为一个整数,表示a和b的公约数个数。
样例输入:
8 16
22 16
样例输出:
4
2
来源:
2013年王道论坛计算机考研机试全真模拟考试
#include<stdio.h>
int swap(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
}
int main()
{
int i,n,m,sum,num1,num2;
while(~scanf("%d %d",&n,&m))
{
if(n>m)
swap(n,m);
sum=0;
for(i=1;i*i<=n;i++)//只按里面比较小的数对半求
{
if(n%i==0)
{
num1=i;
num2=n/i;
if(num1!=num2)
{
if(m%num1==0&&n%num1==0) sum++;
if(m%num2==0&&n%num2==0) sum++;
}
else
{
if(m%num1==0&&n%num1==0) sum++;
}
}
}
printf("%d\n",sum);
}
return 0;
}
最后更新:2017-04-03 12:55:21
上一篇:
linux下vi命令大全
下一篇:
2013蓝桥杯【初赛试题】第39阶台阶
最新阿里云幸运券、阿里云推荐码、阿里云邀请都是干啥的呢?
扩展UltraGrid控件实现对所有数据行的全选功能[Source Code下载]
Ajax方法总结
C# 方法参数 ref 详述
为什么数据分析进行的预测不够成功
根据innodb_trx、innodb_locks、innodb_lock_waits得到详细的锁信息
System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 无法与 Microsoft 分布式事务协调程序交谈 (异常来自 HRESU
基于VPC网络的六大场景及解决方案
Android下阻止系统扫描SD卡上的媒体图像文件
数据库中创建索引的准则