2008
05-26

用C求:


 1、 十位不为0、个位不为0和1的三位素数中,去掉其百位后仍是素数,且该数的个位数也是素数。如113是素数,13是素数,3也是素数。编程输出所有这样的三位数。


 2、s中存放一非空字符串,fg中存放一非空字符,编程用fg将s分割成若干子串并输出。


  例如s=”adbcddduiedddst”,fg=’d',则输出“a”  “bc”  “uie”  “st”


请教!!!》有 2 条评论

  1. delfeer 说:

    1.#include “stdio.h”
    int define(int);
    void main()
    {
     int i,j=0,k=0,a[200],b[200];
     for(i=122;i<1000;i++)
      if(define(i))
      {
       a[j]=i;
          j++;
      }
      
      for(i=0;i<j;i++)
       if(define(a[i]%10)&&(a[i]%10!=0)&&(a[i]%10!=1))
       {
        if((a[i]/10%10!=0)&&(define(a[i]%100)))
         b[k++]=a[i];
       }
       for(i=0;i<k;i++)
       {
        printf(“    %d”,b[i]);
           if((i+1)%5==0)
           printf(“\n”);
       }

    }
    int define(int n)
    {
     int i;
     for (i=2;i<n/2;i++)
      if(n%i==0)
       return 0;
      return 1;
    }

  2. xzh8822 说:

      

      谢谢delfeer

      我也写了一个,不知可以不,请指教:

    1.isprime(int n)
    {int i;
     for(i=2;i<=n/2;i++)
      if(n%i==0) return 0;
     return 1;
     }
    main()
    {int i,j=0;
    for(i=100;i<=999;i++)
      if (i/10%10!=0 && i%10!=0 && i%10!=1)
        if(isprime(i)&& isprime(i%100)&& isprime(i%10))
          {printf(“%5d”,i);j++;
           if(j%10==0) printf(“\n”);
          }
     getch();
     }

    2.

    #include “stdio.h”

    main()
     {char s[]=”adbcddduiedddst”,fg=’d',a[100][100],*p;
      int i=0,j=0,k;
      p=s;

         while(*p)
           {
             if(*p!=fg)  a[i][j++]=*p;
             else {a[i][j]=’\0′;
                   if(*(p+1)!=fg)
                     {j=0;i++; }
                   }
             p++;
           }

      for(k=0;k<=i;k++)
        puts(a[k]);
      getch();
      }

留下一个回复