爱问知识人 爱问教育 医院库

C语言问题:请找出小于1000的回文素数

首页

C语言问题:请找出小于1000的回文素数


        

提交回答
好评回答
  • 2018-02-19 19:26:21
      进行两次循环第一次是进行加一第二次循环数一直除1+1直到加到比本身小1如果能整除进行下一次循环反之输出返回进行下一次循环这就是思路如果要例子也可以补充下问题答案补充#include <stdio。h> #include <math。
      h> int main(void) { int i; /*外循环*/ int j; /*内循环*/ int flag; /*素数标志,flag为1则此数为素数*/ flag = 0; //int n; i = 2; while( i <= 1000) { j = 2; flag = 1; /*假设此数为素数*/ while(j <= (int) sqrt(float(i))) { if(0 == (i %j)) flag = 0; /*根据第三种算法可知次数不为素数*/ j ++; } if(flag) printf("%d\t",i); i++; } printf("\n"); return 0; }。
      

    b***

    2018-02-19 19:26:21

其他答案

    2018-02-19 17:26:21
  • 小弟才疏学浅,不懂高深算法 只能给出这个苯方法了#include <stdio.h> void main() { int sum=0; int i; for (i=1;i<=1000;i++) { if (i<10) printf("%d ",i); else if(i<100) { if (i%10==i/10) printf("%d ",i); }else { if(i%10==i/100) printf("%d ",i);} }  }答案补充不好意思啊 没看仔细  还要求素数呀 这个我就不行了如果楼主学过函数的话 CC的程序是最合适的如果没学函数的话 今以飞临的比较合适 不过 一位数的没有输出来

    于***

    2018-02-19 17:26:21

  • 2018-02-19 15:26:21
  • 编写程序,找出大于等于a,并且小于等于b的所有素数回文数。 第一行包括两个正整数a和b(1≤a≤b≤108)。 输出满足条件的所有素数回文数,每行一个数,从小到大的排序。

    h***

    2018-02-19 15:26:21

  • 2018-02-19 12:26:21
  •   测试能通过的哦!#include<stdio。
      h>int a(int n);int main(){int i,j,t,k,s;printf("Following are palindrome primes not greater than 1000:\n");for(i=0;i<=9;++i)for(j=0;j<=9;++j)for(k=0;k<=9;++k){s=i*100 + j*10 + k;t=k*100 + j*10 + i;if(i == 0 && j==0){t=t/100;}else if(i ==0){t=t/10;}if(s>10 && s==t && a(s)){printf("%d\t",s);}}return 0;}int a(int n){int i;for(i=2;i<(n-1)/2;++i){if(n%i == 0)return 0;}return 1;}答案补充1位数的素数应该不在回文素数之列吧!。

    c***

    2018-02-19 12:26:21

  • 2018-02-19 12:26:21
  •   弱弱的问一句回文素数什么意思???答案补充#include<stdio。
      h>int main(){int s1[1000],i,j=0,m=100,s2[4]={3,0,0,0};for(i=0;i<1000;i++) s1[i]=0;while(m<1000){for(i=2;i<m;i++) if(m%i==0) break;if(i==m) {s1[j]=m;j++;}m++;}for(i=0;i<j;i++){while(s1[i]!=0){s2[s2[0]]=s1[i]%10; s1[i]=s1[i]/10; s2[0]--; }if(s2[1]==s2[3]) printf("%d ",s2[1]*100+s2[2]*10+s2[3]);s2[0]=3;s2[1]=0;s2[2]=0;s2[3]=0;}return 0;}根据题目信息 可判断此数一定为3位数 所以直接从100开始判断已通过测试答案补充第一个for是将S1数组初始化为0第二个for是判断整形变量M是否是素数,如果是按从小到大的顺序依次存入S1数组第三个for是判断数组S1中的素数是否是回文数,如果是则直接输出。

    民***

    2018-02-19 12:26:21

  • 2018-02-19 11:26:21
  •   #include<stdio。
      h>void main(){ int a,b,c,d,e,f,h; for(a=1;a<1000;a++) {for(b=1,c=0;b<=a;b++) if(a%b==0) c++; if(c<=2) {if(a<10)printf("%d ",a); if(a>=10&&a<100) {d=a%10;e=(a-d)/10;if(d==e) printf("%d ",a);} if(a>=100&&a<1000){d=a%10;e=a/100;if(d==e)printf("%d ",a);} if(a>=1000&&a<10000){d=a%10;e=((a-d)/10)%10;f=((a-d-10*e)/100)%10;h=(a-d-10*e-100*f)/1000;if(d==h&&e==f)printf("%d ",a);}}}}这样就可以了。

    楚***

    2018-02-19 11:26:21

类似问题

换一换
  • 程序设计 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):