C語言用函式求質數和,C語言程式設計題質數的和與積

2025-01-05 08:10:26 字數 3357 閱讀 9373

1樓:大臉小芯坤

#include

#include

#include

int isprime(int m) {

int squareroot = int)sqrt(m);

if (m <=1)

return 0;

for (int i = 2; i <=squareroot; i++)

if (m % i ==0) {

return 0;

return 1;

long sumofprime(int n) {long int sum = 0;

for (int i = 0; i < n; i++)if (isprime(i))

sum +=i;

return sum;

void output(long int n) {printf("%ld", n);

int main()

long int n = 0;

printf("輸入範圍:")

scanf("%ld", n);

n = sumofprime(n);

output(n);

system("pause");

return 0;

這麼寫就對了!!!

2樓:網友

1 int isprime(int m) 返回值一直是02 主函式中for迴圈沒有意義。

#include

#include

int isprime(int m)

int i,flag=1;

if(m<=1)

flag=0;

for(i=2;i<=sqrt(m)&&flag;i++)if(m%i==0)

flag=0;

return flag;

long sumofprime(int n)int i;

int s=0;

for(i=1;i<=n;i++)

if(isprime(i))

s=s+i;

return s;

void output(long int n)printf("%ld",sumofprime(n));

void main()

int n;

scanf("%d",&n);

output(n);

3樓:網友

int isprime(int m)

int i,flag=0;

int squareroot=sqrt(m);

if(m<=1)

flag=0;

for(i=2;i<=squareroot&&flag;i++)if(m%i==0)

flag=0;

return flag;

這個地方的flag的值從頭到尾都是0,就沒變過,是不是要把int flag=0改成int flag=1?

c語言程式設計題質數的和與積

4樓:

一、題目描述\\兩個質數的和是s,它們的積最大是多少?\\輸入\\乙個橋逗不大於10000的正整數s,為兩個質數的和。\\輸出\\乙個整數,為兩個質數的最大乘積。

資料保證有解。\\樣例輸入\\50\\樣例輸出\\589\\二、演算法敏李賣實現:\\#include\\#include\\int zhishu(int test)\eturn 1;\\int main()\printf(\"d\",mul);eturn 0;\\三、解題思路\\題目意思是給出乙個數(有解的),將此數拆分成兩個質數之和,然後輸出這兩個質數之積,要求該質數之積擾餘最大,本題解題難度不大,首先遍歷次數為輸出的一半,然後從1和(輸入-1)開始一直到sum/2和(sum-sum/2),對這兩個數進行質數判斷,兩個都是的情況下儲存兩質數之積,\\遍歷完成後將最大的那個積輸出即可\\質數判斷:

利用模簡單的判斷一下是否存在非1因子,是的話返回0否則返回1,注意只需要從2開始一直到該數的算數平方根即"

如何用c++判斷乙個數是否為質數?

5樓:網友

方法一:將m被 2 ~ m-1 之間的每乙個整數去除,如果都不能被整除,所以m是乙個質數。

方法二:將m被 2 ~ m之間的每乙個整數去除。如果m不能被 2 ~√m 間任一整數整除,m必定是質數。

兩段**的輸出結果相同。

輸入乙個整數:1

所以1是質數。

輸入乙個整數:97

所以97是質數。

輸入乙個整數:10

所以10不是質數。

質數:又稱素數,所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2~16的任一整數整除。

c++:在中國大陸的程式設計師圈子中通常被讀做「c加加」,而西方的程式設計師通常讀做「c plus plus」,「cpp」。 它是一種使用非常廣泛的計算機程式語言。

c++是一種靜態資料型別檢查的、支援多重程式設計正規化的通用程式設計語言。它支援過程化程式設計、資料抽象、物件導向程式設計、泛型程式設計等多種程式設計風格。

c語言求質數習題求解

6樓:胡學酥

從頭梳理一下吧。

這個程式應該是求101到200之間有多少個質數,並且都列印出來。

主體結構為兩個for迴圈巢狀, 外層for迴圈列舉101到200每個數字。

內部檢測其是不是質數。

質數的概念題注應該瞭解,這裡再重複一遍,:在大於等於1的自然數中除了1和它本身沒有其他因數的數字稱為質數。

這就是內層for迴圈的作用, 從2開始 到這個數字i的前乙個數字 列舉 如果有任何乙個數字j 能被它本身也就是 i 整除。 那這個i肯定就不是質數了,故break,迴圈終止。

重點來了,由於迴圈終止的條件有兩個,一是break,說明迴圈沒有完畢,此時j肯定小於i的。

二是自然迴圈完畢,此時j=i 。迴圈完畢,說明i是質數,那我們就得把i列印出來啊 並且count+1 用來統計數目。 所以下面這個if就是用來最終判斷i是不是質數的。

是的,只要程式不出錯,j是絕對不會大於i的。

所以在程式執行不出錯的情況下,下面if語句的也是可以寫成 if ( j==i )的。

這樣寫也是可以的,但是從另乙個角度來講,計算機是不可能不出錯的,寫成 j>=i 包含了j=i的情況 ,同時也解決了一部分意外情況,比如執行出錯 j變成了乙個超大的數字。

嚴格講,對程式的結果影響都不大,故兩種寫法都是可以的。

7樓:再蓋一樓

i除以j,當不能整除的時候,j就加1

就這樣迴圈到i=j的時候,就能整除了。

這說明j從2到i這個期間沒有被整除,即i只能被自身整除i所以用這個j>=i來判斷i是否為質數。

用c語言程式設計 求1 ,用C語言程式設計 求1 1 2 1 3 1 4 1 5 1 6 1 99 1 100 的值

include int main printf lf n sum 輸出結果return 0 一步一步的寫的,希望對你有幫助!include int main printf lf n sum return 0 誤差 10 5 for i 1,sum 0 i 100000 i 可以調節中間 的10000...

c語言遞迴函式程式設計習題,c語言,求這道題用遞迴函式的答案題目如圖

樓主,首先我想說一下你題目可能不小心打錯了,我猜應該是求 x 1 x x x 3 5個x相乘 5 2n 1 個x相乘 2 n 1 當n為某值時上式為多少吧 我幫你編寫的 如下 很用心編寫的哦 include stdio.h include math.h int power int n float c...

用c語言程式設計求,用C語言,程式設計求12345n用簡單的語句,我是初學者,謝謝

這個其實就和1 2 3 4 5 6 7.n是一樣的,無非這個是階乘,奇數偶數的規律進行判斷一下就好了,啥時候加啥時候減 用c語言設計一個程式,求1 2 3 4 5 n include stdio.h include stdlib.h int main void for sum 0,t i 1 i n...