代码:
public static void main(String... args){
Scanner sc = new Scanner(System.in);
int count =0;
int a= sc.nextInt();
int b =sc.nextInt();
if(a>b){
//int count =0;
for(int i =1;i<=a;i++){
if(a/i == 0 && b/i == 0){
count++;
System.out.println(count);
}
}
}else if(a<b){
//int count =0;
for(int i=1;i<=b;i++){
if(a/i == 0 && b/i == 0){
count++;
System.out.println(count);
}
}
}
}
答案 0 :(得分:0)
if((a/i == 0)&&(b/i == 0))
这种情况有误 - 如果a / i
为零,或者a
小于i
,则%
只会为零。这显然不是你想要的。
这里需要的是模运算符if((a%i == 0)&&(b%i == 0))
,它在将两个操作数相互划分时返回余数。
simple_triplet_matrix
在这两个位置进行此更改后,您的程序似乎正常运行。
答案 1 :(得分:0)
更精确些。
如果a
Scanner s = new Scanner(System.in);
long n = s.nextLong();
long m=s.nextLong();
int small=0;
int count=0;
if(n==0 || m==0){
System.out.println(count);
return;
}
if(n<m)
small=(int)n/2;
else
small=(int)m/2;
count=1;
for(int i=2;i<=small;i++){
if(n%i==0 && m%i==0)
count++;
}
if(n%m==0 || m%n==0)count++;
System.out.println(count);