三九宝宝网宝宝教育教学论文

c语言编程求素数的问题

01月03日 编辑 39baobao.com

[C语言编程输入的字符串中包含字母和号]#include "stdio.h" #include "string.h" main() { char a[100],b[100]; int i=0,j=0,n=0; printf("请输入带*号的字符串!:\n"); gets(a); printf("\n"); //puts(a); while(a[i]!='\0')...+阅读

if(a[i],当i=2时;N,而且他们同是代表数组a的下标

那么当i=2时,那么此时的i是2,j);i++)

for(j=i+1,你把j=4的a[j]=0。

最后剩下的就都是素数了

楼主主要注意一下i和j的循环

j的循环是在i的循环里面的;sqrt(N),也就是j;j++)

{

printf(",i,是进入j的循环,之后i会自加到4

那么a[i]就是0

如果楼主想不明白

可以把i和j的循环打出来看一下;,此时是要将j的循环跑完之后才再进行i++

那么a[j]已经记为0的数!=0&a[j]。,就像这样

for(i=2;i=%d j=%d\j<!=0)

if(a[j]%a[i]==0)

a[j]=0;i<。。;n"他这样是筛素数

a[i]最初等于2 他把能被2整除的都记为0了

那在以后的运算中 保证a[i]是素数 也就是除一个素数

a[j]等于0 说明他已经被一个素数整除了 已经不是素数了

所以就不用再计算他了

也就是 先筛掉2的倍数

再筛掉3的倍数

再筛掉5的倍数(4被2整除 已经记为0)

再筛掉7的倍数(6被2整除 已经记为0)

再筛掉11的倍数 (8被2整除 9被3整除 10被2整除 都已经被记为0)

。,i的循环肯定是之后才会循环到

再说明白点

以下为关联文档:

汇编语言编程 X Y Z W均为带16位带符号整型变量计算Z X Y1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ASSUME CS:CC, DS:QQ QQ SEGMENT VV DW 4 WW DW +100 XX DW -100 YY DW +800 ZZ D...

汇编语言编程 X Y Z W均为带16位带符号整型变量计算Z12345678910111213141516171819202122232425262728293031ASSUME CS:CC, DS:QQ QQ SEGMENT VV DW 4 WW DW 100 XX DW -100 YY DW 800 ZZ DW ?QQ ENDS;----------------------...

汇编语言编程计算问题;汇编语言编程;计算 S=1+2*3+3*4+4*5+……+N*(N+1),N由用户输入,将结果在屏幕显示;---------------------------ASSUME CS:CC, DS:QW;---------------------------QW SEGMENT M1...

C语言编程一个课后题#include void main() { void change(int *p); //对被调用的change函数声明 int a[5][5],*p,i,j; printf("input matrix:\n"); //提示输入一个5*5的 matrix for (i = 0; i for (...

C语言编程题编一个排序函数啊用了一个冒泡法,从小到大排序,请参考 #include <stdio.h> void Sort(int token[], int count); /*在此处做函数声明最好*/ void main() { int i,count,token[100]; printf("请输...

C语言编程题:定义一个长度为10的数组求最大值及下标C语言程序如下: #include <stdio.h> void fun(int a[],int n,int *k) { int i,maxxr,j; maxxr=a[0]; for(i=0;i<n;i++) { if(maxxr<a[i]) { maxxr=a[i]; } } for(i=0;i<n;i++...

C语言编程的while语句问题你怎么判断它只执行了一次呢??? 补充:首先不清楚你的芯片具体是什么型号的,从程序上看应该是PIC16或者pic18系列的。也不清楚晶振频率是多少。 我提出我的怀疑及其推论:首先我怀疑...

c语言中如何求素数#include<stdio.h> #include<math.h> void main() // 这里不要搞错了,main { int i,n; printf("输入一个整数n"); scanf("%d",&n); n=abs(n); if(n>2) { for(i=2;i<n;i++)// 在for下...

一个c语言的求素数函数详细分析如下,不懂可以追问 这个地方的处理逻辑有问题,这里是判断flag等于1就打印i的值,可是你i的值用什么来保存?也就是说,根据上面的循环判断的时候,i会一直自增到b,那么如果b是...

推荐阅读
图文推荐