1樓:匿名使用者
//修改實現:測試過的,應該沒什麼問題了。要是有問題,還可以**一下~
//輸入:int a, n;
//輸出:int i;
//演算法效果:求最大的i, 使得n!(n的階乘)可以被a^i(a的i次方)整除,而不能被a^(i+1)(a的i+1次方)整除。
#include
#define size 100
struct primeitem
;int* prime_factors(int n);//分解質因數
primeitem* getitemarray(int n);//獲取質數item連結串列
int local(primeitem array,int x);//元素定位
int maxj(int *prime,primeitem *arrayitem);
void main()
//***************分解質因數***************=//
int* prime_factors(int n)
else
break;}}
array[index]=n;//
index++;
array[index]=0;//設定結束標誌
return array;
}primeitem* getitemarray(int n)
for(i=2;i<=n;i++)
else
j++;}}
return arraylist;
}int maxj(int *prime,primeitem *arrayitem)
else}}
if(prime[i]==0&&i!=0)
else
}return count;
}int local(primeitem *array,int x)
return -1;}
2樓:匿名使用者
n! = 1 * 2 * 3 * …… * n這裡的除法均指整除。
1~n這n個數中能被a整除的整數mk = k * a, 其中k = 1 ... (n/a),設所有mk的乘積為m,則所求的a^i必然是m的一個因式,即m可表示成(a^i) * r,其中r不能被a整除,且可知m = (n / a)! * a ^ (n / a); 所以要求a ^ i,只需看(n / a)!
中有因式a的多少次方,這可以使用遞迴實現。
可以用下面一段c++**求i
#include
int geti(int a, int n)
3樓:戈壁與清潭
如果是窮舉法的話,n如果大了,程式不掛也得萎啊!所有,窮舉法俺表示必須強烈滴排斥掉。
首先駁斥一下樓主:int 定義的數 n 不能太大,不然 n! 你求不出來。不過樓主不必擔心,因為計算機的速度是很快的,所以這類的小程式還是很容易寫的,速度也不會很慢;
#include
void main()}}
if(i==-1)
cout< else cout< }這個程式我執行了一下,int 型的最大位數作為n值都可以很快得出結果 4樓:匿名使用者 //對1-n,每一個數都去嘗試整除a,直到不能整除為之。i初始為0,每次可以加上i/a的值就可以了。 #include using namespace std; int main() 5樓: #include #include int main(int a,int n) 6樓:戴曼彤 這還不簡單,對1-n,每一個數都去嘗試整除a,直到不能整除為之。i初始為0,每可以除一個就+1. 用c++編寫一個程式,判斷一個數n 能否同時被3和5整除 7樓:你愛我媽呀 #include using namespace std; int main() int n; cin>>n; if(n%3==0 && n%5==0) cout<<"yes"; else cout<<"no"; return 0; c++程式設計實現,計算100以內能夠被3整除或者被7整除的數的和,並將和輸出。急用,謝謝!!! 8樓:it孤鶩 #include using namespace std; void main() {int i,sum=0; for(i=1;i<=100;i++) if(i%3==0 || i%7==0) sum+=i; cout< 9樓:匿名使用者 int sum = 0; for(int i =0; i< 100; i++) printf("%d", sum); 10樓:花逸百榮軒 100以內能被3整除的數為[3、6、9、12、15、18、21、24、27、30、33、36、39、42、45、48、51、54、57、60、63、66、69、72、75、78、81、84、87、90、93、96、99],其和為[3+99]×16+51=1683;100以內能被7整除的數為[7、14、21、28、35、42、49、56、63、70、77、84、91、98],其和為[7+98]×7=735。 11樓:匿名使用者 int main() cout<
return 0;} 在c++中「n能被5整除」有幾種表達方法 12樓:唐博 這個真不好答,理論上是無數種。 只能告訴你最簡單的 if(n%5 == 0) 1,你還可以寫一個函式,當能被5整除時返回1,其他返回0,然後判斷返回值。但是函式裡面的內容也是if(n%5 == 0) 2,或者((n-5)%10 == 0) 其實所有的都是廢話,都是跟n%5 == 0一個意思 c語言怎麼表示不能被整除 13樓:地表最帥 #include int main() 首先 unsigned year; 應該du是unsigned int year; 其次year沒有zhi 初始化第三 你這邊dao沒有迴圈,你回year++有什答麼用呢應該這樣 unsigned int year = 0; while(year 9999) 14樓:匿名使用者 if(被除數 % 除數 == 0) printf("可以被整除"); else printf("不能被整除"); 15樓:等待 if(a%b!=0) 16樓:夢飛無痕 int a ,b; if(a%b==0&&b!=0) printf(「a能被b整除」); else printf(「a不能b整除」); 17樓:蓉雪球 你是想bai寫閏年嗎 //標準輸du入輸出函式 #include //定義不返回值的zhi主dao函式 void main() 用c語言的條件表示式表示m本能被n整除 18樓:納年光陰 if(m%n == 0) 因為m與n為整型,在c語言裡直接用m/n會只保留整數位,與結果不符,所以應該用取餘判斷有沒有餘數,進而看是否整除。 19樓:匿名使用者 n%m==0 取模判斷餘數是否為0 希望能夠幫到你 c語言中的/(整除)究竟怎麼用?比如下面幾個例子: 1.float n;n=1/2,那n是0嗎?為 20樓:匿名使用者 c語言中的/(除運算子)是否完成整除運 算,是要看參與運算的兩個 回運算數的。 如果其中有一個是答浮點數,則運算結果是浮點數(帶有小數的),如果兩個數全是整數,則運算結果是整數型別,不帶小數! 所以,1.float n;n=1/2=0 2.float n;n=2.0/4=0.5 21樓:哥們兒會_臭臭 對於整型 有1/2=0 在float n;n=1/2;中: 程式會以為1和2是整型變數,於是運算回1/2=0,然後再把0轉換為float,結答果自然是0 在float n;n=2.0/4;中: 應為2.0不是整數,程式會以為它是浮點數。有浮點數參與運算的時候,程式會先把所有參與運算的變數看成浮點數double,對於2. 0/4=0.5,是個double的值,然後再轉換為float就是0.5 編寫一個c++程式,計算並輸出兩個無符號整數m與n 的乘積和整除的整商及餘數(其中| m | ≤ 101000 ,| n |
10 22樓: 使用c99標準的int64_t可以有21位有效數字,所以101000的6位乘法沒有任何問題。 #include #include int main() ********** 輸入m:7654321 輸入n:1234567 7654321*1234567=94497721140077654321/1234567=6 7654321%1234567=246919*****=== **相容gcc,cfree,dev c++, cblocks。 23樓:超人漢考克一世 #include using namespace std; int main() dev-c++ 通過了的程式 哥德 猜想的證明 一 引子 1742年6月7日哥德 寫信給當時的大數學家尤拉,正式提出了以下的猜想 a 任何一個大於 6的偶數都可以表示成兩個素數之和。b 任何一個大於9的奇數都可以表示成三個素數之和。這就是哥德 猜想。哥德 猜想 大於6的偶數可以表示為兩個奇素數之和。這裡大於6的偶數,是指大於或等... 設a為任一整數,則式 a 1 a 2 a n a n a n a n a n 而式中 a n a n 恰為c a n,a 也即是從a n中取出a的組合數,當然為整數。所以 a 1 a 2 a n 一定能被n 整除 n!1 2 3 4 n 高3你會學到的。這樣 n個連續整數的乘積一定能被n 整除 啊 ... 給你舉個典型的例子 while 條件 就是一個所謂的當型迴圈條件成立,則執行while裡的語句,直到不符合條件,終止迴圈。或者你可以在while裡面加入break 則不管條件是否成立都直接跳出迴圈。以下兩個範例,就是條件式成立時執行 while conditoin dowhile condition...如何證明n個連續整數的乘積 能被n!整除
n個連續整數的乘積一定能被n 整除
關於電腦程式演算法的問題,請懂程式設計的解答在。C語言學習。書中我看到兩個迴圈結構當型和直到