用PAD图描述求取出3~100之内将100~200之间的素数输出之和的算法


#include<stdio.h>#include<math.h>intmain(void){inti,j,k;for(i=3;i<=100;i+=2){k=sqrt(i...
#include<stdio.h>#include<math.h>int main(void){int i,j,k;for (i=3;i<=100;i+=2){k=sqrt(i);for (j=2;j<=k;j++){if (i%j==0)break;}if (j==k+1)printf ("%-5d",i);}}求每个步骤的详解
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部
首先你要明白素数的判断原则:素数即只能被1和其本身整除的数,判断n是否为素数只需用2~n/2或2~根号(n)之间的数去除就可以了,常用2~n/2,因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n 。即一个数n的两个因数不能同时比n/2大。程序解释如下:#include<stdio.h>#include<math.h>int main(void){int i,j,k;for (i=3;i<=100;i+=2)//要取的素数的范围:3~100{k=sqrt(i);
//求取如前面说明的素数判断原则中的根号(i)for (j=2;j<=k;j++)
//判断2~根号(i){if (i%j==0)
//如果能被2~根号(i)整除,则不是素数,直接跳出当前for循环break;}if (j==k+1)
//如果i不能被2~根号(i)之间的数整除,j肯定会加到k+1,则可判为素数printf ("%-5d",i);
//将当前素数打印出来}}
本回答被提问者采纳展开全部3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,在3-100内共有24个质数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
387 篇文章
227 订阅订阅专栏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\n", i);
}
printf("%d\n", sum);
getchar();
system("pause");
return 0;
}

我要回帖

更多关于 将100~200之间的素数输出 的文章

 

随机推荐