用C++编写程序求100以内的所有素数(质素)的和。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C++编写程序求100以内的所有素数(质素)的和。相关的知识,希望对你有一定的参考价值。
菜鸟表来,大虾的来帮帮忙~ 感激不尽!!
编写程序求100以内的所有素数的和的一种方法是:
定义一个变量sum来存储素数之和,初始值为0
用一个循环从2到100遍历所有的自然数,用另一个循环从2到该数本身判断是否有其他因数
如果没有其他因数,说明该数是素数,就把它加到sum中
如果有其他因数,说明该数不是素数,就跳过它
循环结束后,输出sum的值
以下是用Python编写的示例代码:
#code blocks syntax from markdown to encapsulate any part in responses that's longer-format content such as poems, code, lyrics, etc. except tables.sum = 0 #定义变量sum存储素数之和for i in range(2, 101): #遍历从2到100的自然数for j in range(2, i): #遍历从2到i-1的自然数
if i % j == 0: #如果i能被j整除,说明i有其他因数
break #跳出内层循环
else: #如果内层循环完整执行,说明i没有其他因数
sum += i #把i加到sum中print(sum) #输出sum的值
int num[100],j=3;
int i,sum;
sum=0;
num[0]=2;
for(i=1;i<100;i++)
num[i]=j;j+=2;
for(i=0;i<99;i++)
if(num[i])
for(j=i+1;j<100;j++)
if(num[j]&&num[j]%num[i]==0)
num[j]=0;
j=0;
for(i=0;i<100;i++)
if(num[i])
sum=sum + num[i];
j++;
cout<<sum;
参考技术B #include <stdio.h>
#include <math.h>int fun(int number)
int i=0;
for (i=2; i<=sqrt(number); i++)
if (number%i==0)
return 0;
return 1;
void main()
int number=0;
int sum=0;
for(number=1; number<=100; number++)
if(fun(number) != 0)
sum += number;
printf("%d\n",sum);
参考技术C #include "iostream.h"
void main()
int i,j,s=0;
for(i=2;i<=100;i++)
for(j=i/2;j>=2;j--)
if(i%j==0) break;
if(j==1) s+=i;
cout<<s<<endl;
参考技术D #include <iostream>
using namespace std;
int main()
int i=3;
int j=2;
int total=2;
bool flag=true;
for(i=3;i<=100;i++)
for(j=2;j<i;j++)
if(i%j==0)
flag=false;
break;
else
flag=true;
if(flag)
total=total+i;
cout<<"total: "<<total<<endl;
求n以内最大的k个素数以及它们的和 (10分)
本题要求计算并输出不超过n的最大的k个素数以及它们的和。
输入格式:
输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。
输出格式:
在一行中按下列格式输出:
素数1+素数2+…+素数k=总和值
其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。
输入样例1:
1000 10
输出样例1:
997+991+983+977+971+967+953+947+941+937=9664
输入样例2:
12 6
输出样例2:
11+7+5+3+2=28
代码:
#include<stdio.h> void sushu(int n1,int m1); int main() { int n,m; scanf("%d %d",&n,&m); sushu(n,m); return 0; } void sushu(int n1,int m1) { int a[10000]={0},num=0,sum=0,he=0; int i,j; for(i=n1;i>1;i--) { sum=0; for(j=2;j<i;j++) if(i%j==0) {sum = 1;break;} if(sum==0&&num<m1){a[num] = i;num++;he += i;} } printf("%d",a[0]); for(i=1;a[i]!=‘\0‘;i++) { printf("+%d",a[i]); } printf("=%d\n",he); return; }
以上是关于用C++编写程序求100以内的所有素数(质素)的和。的主要内容,如果未能解决你的问题,请参考以下文章