编写程序实现以下功能:计算1~n之间的素数并输出。

题目

编写程序实现以下功能:计算1~n之间的素数并输出。


相似考题
更多“编写程序实现以下功能:计算1~n之间的素数并输出。”相关问题
  • 第1题:

    以下程序的功能是计算:。includemain(){int n; float s; s=1.0; for(n=10;n>1;n--)s=s+

    以下程序的功能是计算:。#include <stdio.h> main() { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是( )。

    A.s=1.0;

    B.for(n=10;n>1;n--)

    C.s=s+1/n;

    D.printf("%6.4f\n",s);


    正确答案:C
    解析:该程序的运行结果是1.0000,算法错误。在s=s+1/n中,因为n为整型,所以循环中1/n始终为0。这就是本题算法错误的原因。应把s=s+1/n改为s=s+1.0/n。

  • 第2题:

    阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。

    【函数2.1说明】

    有1、2、3、4四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。

    【函数2.1】

    main()

    {

    int i,j,k;

    printf("\n");

    for((1)) /*以下为三重循环*/

    for(j=1; j<5;j++)

    for (k=1;k<5;k++)

    {

    if ((2)) /*确保i, j, k 三位互不相同*/

    printf("%d,%d,%d\n",i,j,k);

    }

    }

    【函数2.2说明】

    计算并输出100之内的素数,每行输出10个,超过10个则换行。

    【函数2.2】

    include <stdio.h>

    include "math.h"

    define N 101

    main()

    {

    int i,j,line,a[N];

    for(i=2;i<N;i++)(3);

    for(i=2;i<sqrt(N);i++)

    for(j=i+1;j<N;j++)

    {

    if(a[i]!=0&&a[j]!=0)

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

    (4);

    }

    printfC\n");

    for(i=2,line=0;i<N;i++)

    {

    if(a[i]!=0)

    {

    prinff("%5d",a[i]);

    (5);

    }

    if(line==10)

    {

    prinff("\n");

    line=0;

    }

    }

    }


    正确答案:(1)i=1;i5;i++ (2)i!=k&&i!=j&&j!=k (3)a[i]=I (4)a[j]=0 (5)line++
    (1)i=1;i5;i++ (2)i!=k&&i!=j&&j!=k (3)a[i]=I (4)a[j]=0 (5)line++ 解析:本题考查用C语言程序对组合数和素数的求解。
    在函数2.1中,要求输出由1、2、3、4这些数字组成的互不相同且无重复数字的三位数。程序中是用三重循环来实现的。
    第(1)空是三重循环中第一重循环的循环条件,三位数的最高位可以取题目给出的任意一个数,那么应该和其他循环的条件一样,结合程序中变量的应用情况,不难知道这重循环是用变量i,因此,此空答案为i=1;i5;i++。
    第(2)空是条件判断语句的条件,此条件判断语句的作用注释中已经给出,是用来确保i,j,k三位互不相同的,即所组成的三位数中无重复数字。因此,此空答案为i!=k&&i!=j&&j!=k。
    在函数2.2中,题目要求计算并输出100之内的素数,且每行只能输出10个数,从试题一中我们应该很清楚素数的定义了,最小的素数是2。下面我们来分析程序。
    第(3)空是第一个循环下面的执行语句,此循环是从2开始一直到100,结合程序不难发现程序中用了一个数组来存放要参加运算的100个数,但是并没有对数组进行赋初值操作,那么此空的作用应该就是对数组进行赋初值,因此,此空答案为a[i]=i。
    第(4)空是在循环中的两个条件判断语句下面,从条件判断语句if(a[j]%a[i]==0)不难推断出此循环是用来求当前最小素数的倍数的,此空是对当前最小素数倍数的处理,结合后面的程序可以知道,如果是素数的倍数,那么在数组中的值要被变为0,因此,此空答案为a[j]=0。
    第(5)空是在循环输出语句下面,从条件判断语句if(line==10)及下面的操作可以推断出变量line是用来记录一行中输出素数的个数的,在此空的上面一行程序是输出一个素数,那么接下来应该是将变量line加1,因此,此空答案为line++。

  • 第3题:

    阅读以下说明和流程图,回答问题1~2,将解答填入对应的解答栏内。

    [说明]

    下面的流程图描述了计算自然数1到N(N≥1)之和的过程。

    [流程图]

    [问题1] 将流程图中的(1)~(3)处补充完整。

    [问题2] 为使流程图能计算并输出1*3+2*4+…+N*(N+2)的值,A框内应填写(4);为使流程图能计算并输出不大于N的全体奇数之和,B框内应填写(5)。


    正确答案:(1) 0 (2) S+i (3) i+1 (4) S←S+i*(i+2) (5) i←i+2
    (1) 0 (2) S+i (3) i+1 (4) S←S+i*(i+2) (5) i←i+2 解析:本题中,变量i用作循环变量,变量S则用于存放累加和,起初始值为0。在计算1+2+…+N时,每循环一次,将i的值累加到当前的S中,并且i自增1。为计算1*3+2*4+…+N*(N+2)的值,只需将其第i项的值i*(i+2)累加到S中;为计算不大于N的全体奇数之和,令循环变量的步长为2即可。

  • 第4题:

    以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果,请填空。int fun( int n){ int m=0,f=1,i; for(i=1;i<=n;i++) { m+=i*f; f=-f; } return m;}main{ printf("m=%d\\n",); }


    正确答案:fun(10)
    在本题中,题目给出了程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果。
    在程序中,首先定义了fun函数,该函数带有一个整型变量的形参,在函数体中,定义三个整型变量m、f和i,变量m用来存放计算的结果,变量i作为循环变量,变量f用来控制数据的正负。程序运行for循环。
    当循环变量i=1时,m=0+1*1=1,然后将变量f变为-1。
    当循环变量i=2时,m=1+2*(-1),然后将变量f变为1。
    当循环变量i=3时,m=1+2*(-1)+3*1,然后将变量f变为-1。以此类推,直到循环结束,可以实现m=1-2+3-4+…+9-10。最后通过return语句返回m的结果。
    在主函数中,只有一条输出语句,本题的空就是输出语句的输出表达式,从题目的要求可以知道,此空是调用fun计算m=1-2+3-4+…+9-10,从上面对fun的分析可以,形参n就是要计算数的最大数。因此,此空需要填写的内容为fun(10)。

  • 第5题:

    程序test.c的功能是:计算500~800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第1个素数.第2个素数+第3个素数.第4个素数+第5个素数…的值sum。请编写函数count Value实现程序的要求,最后main函数调用函数writeOAT把结果cnt和Sum,输出到文件out.dat中。


    正确答案:
    【审题关键句】计算500~800区间内素数的个数,素数的值从大到小排序,再计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值。
    【解题思路】
    ①首先定义一个循环变量循环i和用于正负号转换的变量j,同时赋i的初值为-1。
    ②通过for循环对800到500的每个数字进行逐个的扫描,指定循环变量i的初值为800,当i值等于500停止循环,每执行一次循环,i的值便减1。(注意,本题for循环从大到小依次读取数据是根据题目要求设计的,这样得到的素数值其排序方式就是从大到小排序。)
    ③在每次执行for循环时,都调用素数判断函数isPrime判断当前的i值是否为素数,如果是素数,则素数计数变量cnt值加1,正负号转换变量j的值乘以-1,实现正负数的交替转换,最后将每次循环得到的i*j的值累加到求和变量 sum中。
    【参考答案】

  • 第6题:

    程序test.c的功能是:计算100以内满足以下条件的所有整数i的个数cnt以及这些i之和sum。条件:i,i+4,i+10都是素数,同时i+10小于100。请考生编写函数countvalue实现程序要求,最后调用函数wfiteDAT把结果cnt和sum输出到文件out.dat中。(数值l不是素数)


    正确答案:
    【审题关键句】100以内(含l00)满足i、i+4、i+10都是素数的整数的个数以及这些i之和。
    【解题思路】
    ①首先定义循环变量i,然后将i的值赋初值为3,每循环一次则将i的值加1,直到i<90。
    ②在for循环中,每执行一次循环则调用函数isPrime(该函数具体的算法已经在源程序中给出,直接用即可),对i、 i+4、i+10是否同时是素数进行判断,如果这三个数同时为素数,则计数变量cnt值加1,同将时将变量i的值累加到sum上。
    【参考答案】

  • 第7题:

    编写程序在终端打印1~100之间的素数。


    答案:public class a{???????? public static void main(String[] args){ int i,j;label:for(i=2;i<=100;i++){????? for(j=2;jif(i%j==0)continue label;System.out.print(+i);System.out.println();}}}

  • 第8题:

    编写程序,实现1到100之间整数的累加并输出运算结果。


    答案:public class a{public static void main(String[] args){int i,s=0;for(i=1;i<=100;i++){s=s+i;}System.out.println("1到100的累加和是"+s);}}

  • 第9题:

    阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。

    【说明1】 函数isPrime(int n)的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1和自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。 【C函数】 int isPrime (int n) { int k, t; if (n==2) return 1; if(n<2|| (1) ) return 0; /* 小于2的数或大于2的偶数不是素数 */ t=(int)sqrt(n)+1; for (k=3; k<t; k+=2) if ( (2) ) return 0; return 1; } 【说明2】 函数int minOne(int arr[], int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。 【C函数】 int minOne (int arr[], int k) { int t; assert (k>0) ; if(k==1) return (3) ; t=minOne(arr+1, (4) ; if (arr[0]<t) return arr[0]; return (5) ; }


    正确答案:
    (1)n%2==0,或!(n%2),或其等价形式
    (2)n%k==0,或!(n%k),或其等价形式
    (3)arr[0],或*arr,或其等价形式
    (4)k-1,或其等价形式
    (5)t

  • 第10题:

    在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写如下事件过程:

    Private Sub Command1_Click()

    n = Val(Text1.Text)

    For i = 2 To n

    For j = 2 To sqr(i)

    If i Mod j = 0 Then Exit For

    Next j

    If j > Sqr(i) Then Print i

    Next i

    End Sub

    该事件过程的功能是( )。

    A.输出n以内的奇数

    B.输出n以内的偶数

    C.输出n以内的素数

    D.输出n以内能被j整除的数


    正确答案:C

  • 第11题:

    编写程序,利用公式:N2=1+3+5+……+(2N-1)计算N2的值,假设N=23。


    正确答案: DATASEGMENT
    N DW 23
    SQUARE DW ?;存放结果
    DATA ENDS
    CODESEGMENT
    ASSUME CS:CODE,DS:DATA
    START:
    MOV AX,DATA
    MOV DS,AX
    MOV CX,N;循环计数器置初值
    XOR AX,AX;累加器清零
    MOV BX,1;数列第一项
    ONE://
    ADD AX,BX
    ADD BX,2
    LOO PONE
    MOV SQUARE,AX
    MOV AX,4C00H
    INT 21H
    CODEENDS
    END START

  • 第12题:

    问答题
    判断101-200之间有多少个素数,并输出所有素数。

    正确答案: 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 {
    public static void main(String[] args){
    int count=0;
    for(int i=101;i<200;i+=2)
    {
    booleanb=false;
    for(int j=2;j<=Math.sqrt(i);j++)
    {
    if(i%j==0)
    {
    b=false;break;
    }
    else {
    b=true;
    }
    }
    if(b==true)
    { count++;System.out.println(i);
    }
    }
    System.out.println("素数个数是:"+count);
    }
    }
    解析: 暂无解析

  • 第13题:

    下列程序的功能是:计算500~800之间素数的个数cnt,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件OUT66.DAT中。

    注意:部分源程序已给出。

    请勿改动主函数mam()和写函数writeDAT()的内容。

    试题程序:

    include<stdio. h>

    int cnt, sum;

    void countValue ( )

    {

    }

    void main ()

    {

    cnt= sum=0;

    countValue();

    printf ("素数的个数=%dkn", cnt );

    printf ("按要求计算得值=%d\n", sum );

    writeDAT ( );

    }

    writeDAT ( )

    {

    FILE *fp;

    fp=fopen ( "OUT66. DAT", "w" );

    fprintf (fp, "%d\n%d\n", cnt, sum);

    fclose (fp);

    }


    正确答案:void countValue ( ) { int ijhalfyy[100]; for (i=500; i800; i++) { half=i/2; for (j=2; 3=half; j++) if (i%j==0) break; /*如果该数不是素数则退出此层循环*/ if (j>=half) /*如果该数是素数则将该数存入数组yy中*/ { yy [cnt]=i; ont ++; /*统计素数的个数*/ } } for(i=0j=-1;icnt;i++) /*计算这些素数的间隔加、减之和*/ { j=i*-1; sum+=j*yy[i]; } }
    void countValue ( ) { int i,j,half,yy[100]; for (i=500; i800; i++) { half=i/2; for (j=2; 3=half; j++) if (i%j==0) break; /*如果该数不是素数,则退出此层循环*/ if (j>=half) /*如果该数是素数,则将该数存入数组yy中*/ { yy [cnt]=i; ont ++; /*统计素数的个数*/ } } for(i=0,j=-1;icnt;i++) /*计算这些素数的间隔加、减之和*/ { j=i*-1; sum+=j*yy[i]; } } 解析:本题考查的知识点如下:
    (1)利用循环和“%”进行素数的判断。
    (2)间隔加、减的实现。
    在本题中,首先要找出判断素数的方法。若一个数a依次除以从2到a/2的数所得的余数都不是0,则这个数是素数。用此方法依次判断出从500到800区间内的素数。由题意可知,第1,3,5…个素数计算加法,第2,4,6…个素数计算减法。减去1个正整数就是加上负的这个正整数,所以可以将这个正整数乘以-1进行加法。使用循环实现求和,在奇数次的循环中,每个素数乘以1,偶数次的循环中,素数乘以-1,就可实现间隔加、减。

  • 第14题:

    要求以下程序的功能是计算main () { int n; float s; S=1.0; for (n=10; n>1; n--) s=S+1/n; printf("%6.4f\n",S); } 程序运行后输出结果错误,导致错误结果的程序行是

    A.s=1.0;

    B.for(n=10;n>1;n--)

    C.s=s+1/n;

    D.prind("%6.4f\n",s);


    正确答案:C
    解析:程序中由于n为整型,所以1/n的结果始终为0,故程序最后输出的结果为0,其结果错误,原因为在表达式1/n中1和n均为整型,所以应该将1改为1.0,这样表达式1.0/n的值不为0,为该数学表达式的值,因此我们可以知道导致程序运行后输出结果错误的行为s=s+1/n;,所以,4个选项中选项C符合题意。

  • 第15题:

    下列程序的功能是:选出100~1000间的所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数cnt,以及这些素数值的和sum。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT17.DAT中。

    注意:部分源程序已给出。

    请勿改动主函数main()和写函数writeDAT()的内容。

    试题程序:

    include <stdio.h>

    int cnt, sum;

    void countValue()

    {

    }

    main()

    {

    cnt=sum=0;

    countValue();

    print f ("素数的个数=%d\n", cnt);

    printf("满足条件素数值的和=%d", sum);

    writeDAT();

    }

    writeDAT()

    {

    FILE *fp;

    fp=fopen("OUT17.DAT", "w");

    fprintf(fp, "%d\n%d\n", cnt, sum);

    fclose(fp);

    }


    正确答案:void countValue() { int i j halfhun ten data; for (i=101; i1000;i++) { hun=i/100; /*求百位数字*/ ten=i%100/10; /*求十位数字*/ data=i%10; /*求各位数字*/ if (hun== (ten+data)%10) /*如果个位数字与十位数字之和被10除所得余数恰是百位数 字 则进一步判断该数是否为素数*/ { half=i/2; for (j=2; jhalf; j++) if (i%j==0) break; if (j >=half) {cnt++; sum+=i; } /*计算这些数的个数cnt 以及这些素数值的和sum*/ } } }
    void countValue() { int i, j ,half,hun, ten, data; for (i=101; i1000;i++) { hun=i/100; /*求百位数字*/ ten=i%100/10; /*求十位数字*/ data=i%10; /*求各位数字*/ if (hun== (ten+data)%10) /*如果个位数字与十位数字之和被10除所得余数恰是百位数 字, 则进一步判断该数是否为素数*/ { half=i/2; for (j=2; jhalf; j++) if (i%j==0) break; if (j >=half) {cnt++; sum+=i; } /*计算这些数的个数cnt, 以及这些素数值的和sum*/ } } } 解析:本题的解题思路是利用一个for循环依次取得100到1000之间的数,接着求得当前所取得的数的各个位上的数字值,语句“hun=i/100;ten=i%100/10:data=i%10:”可以分别取得某数的百位、十位及个位上的数字值,然后判断该数个位数字与十位数字之和被10除所得的余数是否恰好等于百位上的数字。如果这个条件成立,接着去判断原数是否是素数,这里,考虑到效率问题,可以依次用从2到该原数本身一半的数去除原数,如果原数能被除尽,则证明该数肯定不是素数,不需要做下面的工作,接着去取下一个数,继续判断。只有同时满足上述两个条件的数才是本题所需的数,这时把该数累加到变量sum (满足条件素数值的和)中,同时也给计数器变量cnt(素数的个数)加1。

  • 第16题:

    下列程序的功能是:输出10到100之间的所有回文素数。所谓回文素数是指,如果一个数是素数,则该数反序后形成的数也是素数。例如,13是素数,13反序形成得到数为31,31也是素数,则称13为回文素数。

    Private Sub Command1 2_Click( )

    Dim k As Integer,m As Integer,n AsInteger

    For k=10 T0 100

    If prim(k)Then

    m=__________

    n=0

    Do While m>0

    N=n*10+Im Mod l0

    M=m/10

    Loop

    If prim(n)Then

    MsgBox k&“,”&n

    End If

    End If

    Next k

    End Sub

    Public Function prim(n As Integer)As Boolean

    Dim j As Integer

    For j=2 To n/2

    If n Mod J=0 Then

    prim=__________

    Exit Function

    End If

    Next j

    prim=True

    Exit Function

    End Function

    横线处应填写的内容是( )。

    A.k Fake

    B.k True

    C.m False

    D.n True


    正确答案:A
    素数是只能被1和它本身整除的数,因此本题第二空填写False。click函数主要有两个功能,一个是返序,另一个是判断是不是回文素数。在for循环中判断k是不是回文素数,rn是代表即将判断的数字,也就是k。

  • 第17题:

    程序test.c的功能是:选出大于100小于1000的所有个位数字与十位数字之和被10除所得余数恰是百位数字的所有素数(如293)。计算并输出上述这些素数的个数cnt以及这些素数值的和sum。请考生编写函数countValue实现程序要求,最后调用函数writeDAT把结果cnt和sum输出到文件out.dat中。


    正确答案:
    【审题关键句】选出100以上、1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数,计算并输出上述这些素数的个数以及这些素数值的和。
    【解题思路】
    ①首先定义一个循环变量循环i以及用来存放3位数分解之后各位数的变量bw(百位)、SW(十位)和gw(个位)。②通过for循环对100到999的每个数字进行逐个的扫描,循环变量i从100开始,每执行一次循环,i的值加1。③在每次执行for循环时,分解当前变量i值的百位上的数字、十位上的数字和个位上的数字,然后利用表达式(gw+SW)
    %10==bw来判断个位数字与十位数字之和被l0除所得余数与百位数字是否相等,同时调用函数isP判断变量i的值是否是素数,如果以上两个条件同时满足(两个表达式通过运算符进行连接),则计数变量cnt值加1、并把其值加到变量sum上,直到循环结束,即可求出从100到999中所有满足条件的素数的个数和它们的和。
    【参考答案】


  • 第18题:

    编写程序,计算1~100中偶数的累加和并输出。


    答案:public class a{public static void main(String[] args){int i,s=0;for(i=1;i<=100;i++){if(i%2==0)s=s+i;}System.out.println("1到100的偶数累加和是"+s);}}

  • 第19题:

    编写程序,计算10的阶乘并输出运算结果。


    答案:public class a{public static void main(String[] args){int i,s=1;for(i=1;i<=10;i++){s=s*i;}System.out.println("10的阶乘是"+s);}}

  • 第20题:

    输出100~200之间的素数。帮忙解释下面的伪代码含义。

    请详细一点哦!重点是为什么i≤√ ̄n和;√ ̄n。谢谢了


    您好!素数本来是用它除以比他小的所有数,如果除1外都不能整除,则是素数。
    main()
    (int m,n;
    scanf("%d",&m);
    for(n=1;n<=m/2;n++){if(m%n==0)
    printf("0");
    else printf("1");}}
    #include<stdio.h>
    #include<math.h>
    P(int n)
    {int i;
    if(n==1)
    return 0;
    for(i=2;i<=sqrt(n);i++)
    if(n%i==0)return 0;

    return 1;

    }
    void main()
    { int n;
    for(n=100;n<=200;n++){
    if(P(n))
    printf("%d is a prime!\n",n);
    else
    printf("%d is not a prime!\n",n);
    }

    getch();
    }

    s说明:
    因为如果一个数不是素数是合数,
    那么一定可以由两个自然数相乘得到,
    其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。





    n=100 //设置初始值为100

    while n≤200 do //当n<=200时进行循环

      i=2  //从2开始,因为1既不是质(素)数也不是合数

      while i≤√ ̄n  //√ ̄n 表示对n进行开方,因为如果一个数不2到本身开方的整数范围内的整数没有数可以整除的就没有其它数可以对他进行整除了,至于为什么,自己去想想

         if mod(n,1)=0 then  //这里的1应该改成i吧,如果n对i求余为0则表示它不是一个质数,将i赋值为n,因为循环条件是i≤√ ̄n 所以会自动退出循环

    i=n

         else //如果求余为0则i自增

            i=i+1

         end if

      end do

      if i<√ ̄n then print n  //如果i<√ ̄n则表示n是一个质数,因为如果n可以被i整除的话,i就会被赋值为n所以就不会大于 √ ̄n了

      n=n+1

    end do

    为什么一个数从2到本身开方的整数范围内的整数没有数可以整除的就没有其它数可以对他进行整除了?这是一个折中的算法,你想一下如果一个数从2到它本身开方的整数都没有可以对他整除的那么那还有可能被比大于他开方的数整除吗?如果可以整除的话,那么小于它本身开方的数就一定会有可以对它进行整除的。你自己拿几个数字试试就知道了
     

  • 第21题:

    以下程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*2<1+2,故不输出该数:对于27,有2*7>2+7,故输出该数。请填空。

    include<iostream.h>

    void main()

    {

    int n,k=1,s=o,m;

    for (n=1:n<=100:n++=

    {

    k=1;s=0;

    _____,

    while( )

    {

    k*=m%10;s+=m%10;

    (3) ;


    正确答案:m-n m m/=10
    m-n m m/=10

  • 第22题:

    判断101-200之间有多少个素数,并输出所有素数。


    正确答案: 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 {
    public static void main(String[] args){
    int count=0;
    for(int i=101;i<200;i+=2)
    {
    booleanb=false;
    for(int j=2;j<=Math.sqrt(i);j++)
    {
    if(i%j==0)
    {
    b=false;break;
    }
    else {
    b=true;
    }
    }
    if(b==true)
    { count++;System.out.println(i);
    }
    }
    System.out.println("素数个数是:"+count);
    }
    }

  • 第23题:

    在RSA密钥生成过程中,在生成公钥(e,n)和私钥(d,n)过程中,我们需要对p,q,n,e,d等参数赋值并进行运算,n=pq,以下关于p,q,n,e,d的说法正确的是()

    • A、n是素数
    • B、n,p,q都是素数
    • C、n和p互素
    • D、gcd(e,(p-1)(q-1))=1

    正确答案:D

  • 第24题:

    问答题
    编写程序,利用公式:N2=1+3+5+……+(2N-1)计算N2的值,假设N=23。

    正确答案: DATASEGMENT
    N DW 23
    SQUARE DW ?;存放结果
    DATA ENDS
    CODESEGMENT
    ASSUME CS:CODE,DS:DATA
    START:
    MOV AX,DATA
    MOV DS,AX
    MOV CX,N;循环计数器置初值
    XOR AX,AX;累加器清零
    MOV BX,1;数列第一项
    ONE://
    ADD AX,BX
    ADD BX,2
    LOO PONE
    MOV SQUARE,AX
    MOV AX,4C00H
    INT 21H
    CODEENDS
    END START
    解析: 暂无解析