00011.cpp

来自「通过一些基础的程序」· C++ 代码 · 共 51 行

CPP
51
字号
/*
名称编号:00011
实现功能:求质数之和
运行结果:通过
*/
/*******************************************************************/
#include <iostream>
#include <math.h>
using namespace std;
//判断一个整数是不是质数,若是返回1,不是返回0
int isPrime(int n)
{
    int i;
    for(i=2;i<=sqrt(n);i++)
    if(n%i==0) 
		return 0;
    else continue;
    return 1;
}
//计算前n个质数之和
int sum(int n)
{
    int i = 2,sum = 0;
    if(n<1)  return 0;   
    else
    {
      for(int count=0;count<n;i++)
      {           
                if(isPrime(i))
                {
                     sum+=i;
                     count++;
                }           
      }
      return sum;
    }
}
int main()
{
    int n;
    cout<<"输入要计算质数的个数:"<<endl;
    cin>>n;
    cout<<"前"<<n<<"个质数之和SUM="<<sum(n)<<endl;
    return 0;
}
/*******************************************************************/
//【数学知识】s=(int) sqrt(n)的意思就是对n开平方后取整,这样做是为了提高计算效率。
//因为如果一个数不是质数的话,对它做因式分解,
//至少有一个因子是小于或者等于它的开方取整的,
//如果在小于或等于n的开方取整中没有找到它的因子,那么就可以判断n是质数。
//【拓展1】打印是实现是那些数相加的功能

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?