输入一个自然数n,求小于等于n的素数之和?
程序员文章站
2022-07-16 09:58:31
...
问题描述:
输入一个自然数n,求小于等于n的素数之和;例如:样例输入 :2 样例输出:2。
解题思路:
(1)什么是素数:
素数(prime number)又称质数,有无限个。一个大于1的自然数,除了1和它本身外(因为1既不是素数,也不是合数),不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数.
比如:2,3,5,7,11,…等。
(2)如何判断一个数是否为素数:
该数除了1和它本身以外不再有其他的因数,通俗的讲,就是只能被1和这个数本身整除,不能被其它数整除;
for (j = 2; j<i; j++)//j不能从1开始,因为1能整除任何数,所以j从2开始
{
if (i%j == 0)
break;
}
if (i == j)
printf("%d ", i);//i就是一个素数
(3)定义一个变量sum,统计所有素数的和,当所有素数统计完成之后,打印sum;
代码实现:
#include<stdio.h>
int main()
{
int n = 0;
int sum = 0;
int i = 0, j = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 2; j < n; j++)
{
if (i%j == 0)
break;
}
if (i == j)
{
sum = sum + i;
}
}
printf("%d\n", sum);
return 0;
}
运行结果:
推荐阅读
-
问题描述 输入一个自然数n,求小于等于n的素数之和
-
输入一个自然数n,求小于等于n的素数之和?
-
1)的累加和(累乘积(阶乘))。其中n的值从键盘输入。输入一个2000年以后的年份n,输出所有介于2">
PTA判断输入的整数是否是素数,如果是则输出"1",否则输出"0." 编写程序,求自然数1至n(n>1)的累加和(累乘积(阶乘))。其中n的值从键盘输入。输入一个2000年以后的年份n,输出所有介于2
-
输入正整数n(n大于等于2),求不大于n的全部质数(素数)【其中一种优化算法】
-
1002 写出这个数 (20)(20 分) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^10
-
小于等于n的素数之和
-
刷题————输入一个数n,求小于等于n的全部质数
-
求超越,计算小于等于N的素数个数