| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1335 人关注过本帖
标题:C语言 求助 绝对素数 请各位帮忙
只看楼主 加入收藏
zangjingyao
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-4
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:8 
C语言 求助 绝对素数 请各位帮忙

    当一个素数的各数位反序后仍为素数,这样的数
    称为绝对素数。编程求出所有2位和3位的绝对素
    数,每行打印15个。
    要求编写函数:
     int  prime( int  n );
         若 n 为素数,则返回1,否则返回0。
     int  inv( int n);
         返回n的反序数。
搜索更多相关主题的帖子: C语言 素数 
2010-01-04 12:22
zangjingyao
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-4
收藏
得分:0 
帮帮我吧
2010-01-04 12:30
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:0 
#include "stdio.h"
#include "conio.h"
int prime(int n)
{
    int i;
    for(i=2;i<=n/2;i++)
    if(n%i==0)
        {
        return 0;
        }
    if(i>n/2) return 1;
}
int sort(int n)
{
    int g,s,b;
    b=n/100;
    s=n%100/10;
    g=n%10;
    if(b==0) n=s+g*10;
    else n=b+s*10+g*100;
    return n;
}
int main()
{
    int i,n;
    for(i=10;i<1000;i++)
        if(prime(i)==1)
        {
        n=sort(i);
        if(prime(n)==1)
        printf("%d\n",i);
        }
        
}
2010-01-04 12:52
zangjingyao
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-4
收藏
得分:0 
这个不是每行打印15个吧  请指教啊
2010-01-04 12:58
zangjingyao
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-4
收藏
得分:0 
回复 3楼 xu362726904
要每行打印15和数的啊
2010-01-04 12:58
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:20 
#include "stdio.h"
#include "conio.h"
int prime(int n)
{
    int i;
    for(i=2;i<=n/2;i++)
    if(n%i==0)
        {
        return 0;
        }
    if(i>n/2) return 1;
}
int sort(int n)
{
    int g,s,b;
    b=n/100;
    s=n%100/10;
    g=n%10;
    if(b==0) n=s+g*10;
    else n=b+s*10+g*100;
    return n;
}
int main()
{
    int i,n,j=0;
    for(i=10;i<1000;i++)
        if(prime(i)==1)
        {
        n=sort(i);
        if(prime(n)==1)
        {
            printf("%d ",i);
            j++;
            if(j%15==0)printf("\n");
        }
        }     
}
2010-01-04 13:09
zangjingyao
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-4
收藏
得分:0 
回复 2楼 zangjingyao
谢谢你啊!!!
2010-01-04 13:45
fqtb16
Rank: 7Rank: 7Rank: 7
来 自:上海
等 级:黑侠
帖 子:96
专家分:504
注 册:2009-12-28
收藏
得分:0 
正解

爱拼才会赢
2010-01-04 13:50
ufozhoujie
Rank: 2
来 自:湖南常德
等 级:论坛游民
帖 子:14
专家分:33
注 册:2010-1-4
收藏
得分:0 
#include<stdio.h>
#include<math.h>

int prime(int n)//求是否是素数
{
    int i,k,flag=1;
    k=sqrt(n);
    for(i=2;i<=k;i++)
        if(n%i==0)
        {
            flag=0;
            break;
        }
    return flag;//如是返回1,否则返回0
   
}

int inv(int n)//求素数的反序数
{
    int fn=0;
    if(n<100)//鉴于只是求两位到三位数,因此没有用循环
    {
        fn+=(n%10)*10;
        n/=10;
        fn+=n;
    }
    else
    {
        fn+=(n%10)*100;
        n/=10;
        fn+=(n%10)*10;
        n/=10;
        fn+=n;
    }
    return fn;
}

void main()
{
    int n,m,num=0,flm;
    for(n=10;n<=999;n++)
    {
        if(prime(n))
        {
            flm=0;//标示符,n的反序数不是素数为0
            m=inv(n);//求素数的反序数
            if(prime(m))
            {
                flm=1;//它的反序数也是素数时为1
                num++;
                printf("%4d",n);
            }
            if(flm==1&&num%15==0)
            printf("\n");
        }
    }
    printf("\n");
}

勤奮、專心、毅力、守時。。。
2010-01-04 14:26
快速回复:C语言 求助 绝对素数 请各位帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026804 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved