sinat_37676560
云裳容
2017-11-29 13:06
采纳率: 95.2%
浏览 1.3k

ACM题目(素数)(求c或c++解决)

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy
    已采纳
     int check_repeat(int n)
    {
        int flag[10]={0};
        int a;
        while(n)
        {
            a=n%10;
            n/=10;
            if(flag[a]) return 1;//发现重复
            flag[a]=1; //标记出现过
        }
        return 0; //正常退出循环 表示没有出现重复
    }
    int prime(int num) //prime表示素数
    {
    int i = 0;
    int k = 0;
    k = sqrt(num);
    for (i = 2; i <= k; i++)
    {
    if (num%i == 0)
    {
       return 0;
    }
    }
    return 1;
    }
    int main()
    {
    int x, y;
    scanf("%d %d", &x, &y);
    for (int i = x; i <= y; i++)
    {
    if (check_repeat(i) &&  prime(i))
    printf("%d\n", i);
    }
    }
    
    点赞 评论

相关推荐