1. 程式人生 > >買不到的數目

買不到的數目

clas == 最小 system.in col args ava detail print

方法一:自然數a,b互質,則不能表示成ax+by(x,y為非負整數)的最大整數是ab-a-b.

證明:
a或者b是1的情況下容易證明.
以下情況都是a>1且b>1的情況.
首先證明ab-a-b不能表示成ax+by
假設ab-a-b=ax+by,那麽ab=am+bn (m,n都大於等於1)
左邊是a的倍數,右邊am是a的倍數,那麽要求bn也要是a的倍數
b不是a的倍數,只能要求n是a的倍數,這樣的話,bn=bn’a>=ba
那麽am=ab-bn<=0就與am>1矛盾.

(方法一沒有想到)
方法二就是暴力,從最小公倍數暴力!

 
import java.sql.Date;
import java.util.*; public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int w = m*n; int count=0; int flag=1; long start = System.currentTimeMillis();
while(w-->0){ count=0; for(int i=0;i<m;i++){ if(flag==0) { flag=1;break; } for(int j=0;j<n;j++){ if(i*n+j*m==w) { flag=0;
break; } count++; } } if(count==m*n){ System.out.println(w); break; } } long end = System.currentTimeMillis(); System.out.println(end-start); } }

參考博客:https://blog.csdn.net/bear_huangzhen/article/details/78496671

買不到的數目