有誰知道能同時被123456789整除的四位數有哪些呢?
2007-02-15 09:13:06 · 3 個解答 · 發問者 大海 1 in 電腦與網際網路 ➔ 程式設計
可以的話請告知算法 謝謝
2007-02-15 09:24:21 · update #1
同時被 1, 2, 3, 4, 5, 6, 7, 8, 9整除
就是 1, 2, 3, 4, 5, 6, 7, 8, 9 的公倍數
1, 2, 3, 4 的倍數一定在 6 或8 的倍數裡
可以不看
6的倍數一定在8 和 9 的公倍數裡
可以不看
=> 求 5, 7, 8, 9 的公倍數
因為這四個數之間完全沒有公因數
所以它們的最小公倍數就是它們的乘積
= 5*7*8*9
= 2520 (剛好是四位數)
2520的倍數都是 1, 2, 3, 4, 5, 6, 7, 8, 9 的公倍數
2520*2= 5040
2520*3= 7560
四倍就不是四位數了
所以有 2520, 5040, 7560
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.
2007-02-16 02:00:50 補充:
如果要用程式來做
二樓大大的程式可以改良
for(i=1000; i<=9999; i++ ) (因為要找四位數)
{
for(j=5; j<=9; j ++) (1~ 4可以不必做 可省 4/9 時間)
{
if(i%j!=0)
break;
/* 不必在此判斷
if(j==9)
flag=1;
*/
}
if( j > 9 ) /* 當找到時 j 才會大於 9 */
printf("i=%dn",i);
}
2007-02-15 20:20:37 · answer #1 · answered by JJ 7 · 0⤊ 0⤋
你發在C程式版
應該是要CODE吧 @@
參考參考 可正確執行於VC++ 6.0
#include
#include
int main()
{
int i,j,flag=0;
for(i=1;i<=9999;i )
{
for(j=1;j<=9;j )
{
if(i%j!=0)
break;
if(j==9)
flag=1;
}
if(flag==1)
{
printf("i=%d\n",i);
flag=0;
}
}
system("PAUSE");
return 0;
}
2007-02-15 10:05:40 · answer #2 · answered by Anonymous · 0⤊ 0⤋
2520 5040 7560
沒錯ㄉ話 就這些ㄌ
2007-02-15 09:18:57 · answer #3 · answered by 軒 1 · 0⤊ 0⤋