c語言求素數和
Ⅰ 用c語言 求素數之和(即求出素數並相加)
//函數isPrime判斷參數num是否是素數
int isPrime(int num) {
int i;
for(i=2;i<=i/2;k++)
{
if(num%i==0) {
return 0;//num不是素數
}
}
return 1; //num是素數
}
//main函數,進行測試
void main(){
int i;
int primeSum=0;
for(i=2;i<=100;i++) { //此處修改求多大數范圍之內的素數之和
if(1==isPrime(i)) {
primeSum+=i;
}
}
printf("\n100以內的所有素數之和為:%d\n",primeSum);
}
Ⅱ C語言求質數之和
#include<stdio.h>
#include<math.h>
int IsPrime(int x)
{
int i;
for (i = 2; i <= sqrt(x); i++)
{
if ((x % i)==0)
return 0;
}
return 1;
}
int sumPrime(int n){
int m,sum =0;
for(m = 2;m<=n;m++){
if(IsPrime(m) == 1)
sum+=m;
}
return sum;
}
int main(void){
int n;
printf("請輸入一個正整數n:\n");
scanf("%d",&n);
printf("1 - n 之間的質數和是:%d\n",sumPrime(n));
}
Ⅲ c語言中如何求素數
你想下假如對8取餘8/2==4,5以後的數字能整除8嗎,為了提高效率,只要到4就行了,其實你理解錯了,哪是這一句是判斷方法啊,
Ⅳ c語言求素數的演算法
根據素數的性質,代碼設計如下:
設計一:判斷n是否能被1~n-1整除,不能整除為素數
#include<stdio.h>
int main()
{
int i, n;
scanf("%d", &n);
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if (i < n) printf("This is not a prime.");
else printf("This is a prime.");
return 0;
}
設計二:判斷n是否能被2~√n間的整數整除,不能整除為素數
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (i <=k) printf("This is not a prime.");
else printf("This is a prime");
return 0;
}
(4)c語言求素數和擴展閱讀:
1.素數的定義是只能被1和他本身整除,1不是素數.因此要判斷一個數是否為素數.就要判斷它能不能被比他小的所有素數整除,這是一個演算法.(寫到演算法時,我只能寫出用它除以比他小的所有數,造成運算速度低下)
2.如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。由此可以得到一個法2較快的素數判斷演算法
Ⅳ (c語言)求素數和
你s=s+x;
放的位置不對,應該這樣放:
#include
void
main()
{
int
x,n=10,i,s=0;
for(x=3;x<=n;x++)
{
for(i=2;i
=x)
{
printf("%d+",x);
s=s+x;
}
}
printf("\b=%d\n",s);
}
補充:
在用外層的for計算下一個的時候,要把內層for判斷出來的素數累加起來啊
否則,計算到下一個的時候,前一個就丟了啊
所以,累加的那句代碼,應該在外層for循環的裡面,內存for循環的外面(後面)啊
Ⅵ c語言使用函數求素數和
您好,很高興回答您的問題。
對於您的這個問題,有兩個方面的知識點需要掌握,一是素數的判斷標准,我們知道只能被1和數本身整除的數叫素數,具體實踐時就要用到循環結構;而是函數的調用,要清楚調用函數的結構和使用方法,才能用好調用。
以上兩個問題解決了,那麼這個程序就可以實現功能了。還有關鍵的一點就是您沒有給出具體的范圍,也就是求哪個范圍內的素數之和呢,沒有這個范圍,也就沒有辦法求出和了。
Ⅶ C語言求素數代碼
方法有2個:
1、判斷n是否能被2~√n間的整數整除
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (i <=k) printf("This is not a prime.");
else printf("This is a prime");
return 0;
}
(7)c語言求素數和擴展閱讀:
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
判斷語句(選擇結構):
if 語句:「如果」語句;if—else 語句:「若…(則)…否則…」語句;switch 語句:「切換」語句;switch—case:「切換—情況」語句。
循環語句(循環結構):
while 語句:「當…」語句;do—while 語句:「做…當…(時候)」語句;for 語句:條件語句(即「(做)…為了…」語句)。
跳轉語句(循環結構:是否循環):
goto 語句:「轉舵」語句,也稱「跳轉」語句;break 語句:「中斷」(循環)語句,即結束整個循環;continue 語句:「繼續」語句(結束本次循環,繼續下一次循環);return 語句:「返回」語句。
需要說明的是:
1、一個C語言源程序可以由一個或多個源文件組成。
2、每個源文件可由一個或多個函數組成。
3、一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。是整個程序的入口。
4、源程序中可以有預處理命令(包括include 命令,ifdef、ifndef命令、define命令),預處理命令通常應放在源文件或源程序的最前面。
5、每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。(結構體、聯合體、枚舉型的聲明的「}」後要加「 ;」。)
6、標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
書寫規則
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
Ⅷ c語言求素數和
思想很好
但是在內部循環判斷之類的出錯了
呵呵,內部if(i%j==0) break;這句在你到達j==的判斷之前i時就跳出了內部for
下面的sum增加不執行了
呵呵
#include <stdio.h>
int main(void)
{
int i = 1;
int j;
int sum = 0;
while (++i <= 30)
{
j = 1;
while (++j <= i)
{
if (i%j == 0)
{
sum += i;
break;
}
}
}
printf("Sum = %d\n",sum);
return 0;
}