用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的值
参考技术A #include<iostream.h> int main()

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以内的所有素数(质素)的和。的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言求1至100所有素数的和?

C语言求范围之内素数的和与个数?

用C++求50~100内的素数,具体问题如下

c语言求1000以内的素数(素数是只能被1和它本身整除的数)

c语言中用筛选法求素数

用python计算100以内所有偶数的和