1. (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循環的外面(後面)啊
2. C語言 素數求和問題
#include "stdio.h"
#include "math.h"
int main(void)
{
int count, i, m, n, sum;
int repeat, ri;
int prime(int m);
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d %d", &m, &n);
sum = count = 0;
for(i=m;i<=n;i++){
if(prime(i)==1){
sum=sum+i;
count++;}
}
printf("Count=%d,sum=%d\n",count,sum);
}
}
int prime(int m)
{
int i;
if(m==2)return 1;
if(m==1)return 0;
if(m>2){
for(i=2;i<m;i++){
if(m%i==0)
return 0;}
return 1;//你的主要問題在這里,上面的for循環已經限定了i不會大於m的,你再用了一個if(i>=m)就不對了
}
}
3. C語言 統計素數並求和
#include<stdio.h> #include<math.h> int f1(int x); int main() { int n=0,i; for(i=50;i<=100;i++) { if(f1(i)) { printf("%d ",i); n++; if(n%5==0)printf("\n"); } } printf("共有%d個素數\n",n); return 0; } int f1(int x) { int i,z,r; r=(int)sqrt(x); for(i=2;i<=r;i++) { if(x%i==0) break; } if(i>r) z=1; else z=0; return(z); }
4. 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;
}
5. c語言:從鍵盤任意輸入一個整數n,編程計算並輸出1-n之間的所有素數之和
#include<stdio.h>
int main()
{
int n,i,j,t,l;
int sum=0;
printf("請輸入一個大於2的整數:");
scanf("%d",&n);
l=n;
for(;n>=2;n--)
{
for(i=2;i<n;i++)
{
if(n%i!=0)//判斷其為素數
t=1;1
else
{
t=2;
break;
}
}
if(t==1)
{
sum+=n;
//printf("%d ",n);//輸出1-n之間的所有素數
}
}
printf("1-%d之間的所有素數和為:%d ",l,sum);
return 0;
}
運行效果:
(5)c語言計算素數之和擴展閱讀:
以15為例:
因為:1-15之間的素數有13、11、7、5、3、2
所以:13+11+7+5+3+2=41
printf()函數用法:
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。
6. C語言素數求和 拜託各位高手了!!
voidmain()
{
inti,j,n,sum=0;
scanf("%d",&n);
i=n;//從n開始檢查
while(n>0)
{
if(prime(i)!=0)//是素數
{
sum=sum+i;//加上i
n--;//個數減1
}
i++;//取下一個數
}
printf("%d",sum);
}
7. c語言求素數之和的問題
for(i=2;i<=n;i++)你到n幹嘛,哪個數不能整除自己,你這么判定沒有素數了,全返回0
intpanan(intn)
{
inti;
for(i=2;i<=n;i++)
if(y=n%i0)return0;
returnn;
}
int a[100],i=0,s=0,puanan(int);你這是幹嘛,哪有函數被int進去的。。
改成int a[100],i=0,s=0;
for(i=0;i<=99;i++)
{
if(getchar()=='e')break;
scanf("%d",&a[i+1]);
}
這里也不對,你getchar可是要吃字元的,這么寫你的數字總是會被吃一位,一定要e結束的話
charc[10];
while(scanf("%s",c),c[0]!='e')
{
s+=panan(atoi(c));//atoi將char轉換int
}
printf("%d ",s);
8. C語言求1到100的素數總和
素數只能被1和它本身整除。你的邏輯中只是判斷了這個數能不能被1和自己整除(所有數都達到要求),相當於沒有判斷啊,直接是1加到100
9. 求1到100以內所有素數之和(c語言)
1到100之間的所有素數之和;素數曾稱質數。一個大於1的正整數,如果除了1和它本身以外,不能被其它正整數整除,就叫素數。1不是素數。
2+3+5+7+11+13+17+19+23+29+31+37+41+43+47+53+59+61+67+71+73+79+83+89+97=1060,100以內所有素數之和是1060
#include"stdafx.h"
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int isPrime(int n)//求素數,這是最經典的演算法代碼。
{
int j;
for(j=2;j*j<=n;j++)
if(n%j==0)
return 0;
return 1;
}
int main(void)
{
int i,sum=0;
for(i=2;i<100;i++)
if(isPrime(i))
{
sum+=i;
printf("%d ",i);
}
printf("%d ",sum);
getchar();
system("pause");
return 0;
}
運算輸出:
(9)c語言計算素數之和擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
10. C語言求范圍之內素數的和與個數
按照你的要求編寫的C語言程序如下
#include<stdio.h>
int f(int x) //定義判斷素數的函數
{
int n,flag=1;
if(x==1) return 0;
for(n=2;n<x;n++)
if(x%n==0)
flag=0;
return flag;
}
int main()
{
int i,N,M,count=0,sum=0;
scanf("%d%d",&N,&M);
for(i=N;i<=M;i++){
if(f(i)==1){
count++;
sum=sum+i;
}
}
printf("%d到%d之間共有%d個素數,它們的和為%d",N,M,count,sum);
return 0;
}