鱼C论坛

 找回密码
 立即注册
查看: 3082|回复: 4

素数问题。求大佬帮下

[复制链接]
发表于 2021-1-19 18:19:44 | 显示全部楼层 |阅读模式
3鱼币
我自己写了一下但是什么都输出不了。。



1193是个素数,对它循环移位后发现:
1931,9311,3119也都是素数,这样特征的数叫:循环素数。

你能找出具有这样特征的5位数的循环素数吗?

当然,这样的数字可能有很多,请写出其中最大的一个。

注意:答案是个5位数,不要填写任何多余的内容。
[code]#include<stdio.h>
int main()
{

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-19 18:20:19 | 显示全部楼层
#include<stdio.h>
int main()
{
        int i,y,temp,temp1,j,c,sum,max;
        int a[500];
        for(i=10000;i<100000;i++){
                c=0;
                for(j=0;j<i;j++){
                        if(i%j==0){
                                for(c=0;c<5;c++){
                                        temp1=i;
                                        y=i%10;
                                        if(y=0){
                                                break;
                                        }
                                        temp=i/10;
                                        i=y*10000+temp;
                                        for(sum=2;sum<i;sum++){
                                                if(i%sum!=0){
                                                        c=6;
                                                }
                                        }
                                }
                                if(c=5){
                                        for(int m=0;m<300;m++){
                                        if(a[m]=NULL){
                                        a[m]=i;
                                        break;
                                        }
                                        }
                                }
                        }
                }
        }
        for(int m=0;m<300;m++){
                if(max<a[m]){
                        max=a[m];
                }
        }
        printf("%d",max);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-19 18:52:02 | 显示全部楼层
#include <math.h>
#include <stdio.h>

int IsPrime(int n)
{
        int i = 0;

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


int IsCirclePrime(int n)
{
        int i = 0;
        int temp = 0;
        int max = n;
        int num = n;
                
        for(i=0 ; i<5 ; i++)
        {
                if(!IsPrime(num))
                {
                        return 0;
                }                
                
                max = max > num ? max : num;
                
                temp = num / 10000;
                num = (num % 10000) * 10 + temp;
                
        }
        
        return max;
}


int main()
{
        int i;
        int max = 0;
        int num = 0;
        
        for(i=10001; i<99999 ; i++)
        {
                num = IsCirclePrime(i);
                max = max > num ? max : num;
        }
        
        printf("%d\n",max);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-21 12:16:03 | 显示全部楼层
def prime(x):
    if x%2==0 or x%3==0:
        return False
    else:
        for i in range(5,int(x**0.5) +1):
            if x%i == 0:
                return False
        return True

def dh(x):
    ls = []
    for i in range(len(str(x))):
        a = str(x)[i:]+str(x)[:i]
        a = int(a)
        ls.append(a)
    return ls

lst = []
for i in range(10000,99999):
    if prime(i):
        if all(prime(j)==True for j in dh(i)):
            lst.append(i)
        
print(lst,max(lst))
                
    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-24 14:49:56 | 显示全部楼层
#include <stdio.h>
#include <math.h>
int isprime(int n);
int move(int n);
int main()
{
        int i,j,max;
        max=0;
        int m;
        int flag1,flag2,flag3,flag4,flag5;
        for(i=10000;i<=99999;i++)
        {
                flag1=flag2=flag3=flag4=flag5=0;
                if(isprime(i))
                {
                        flag1=1;
                }
                m=move(i);
                //printf("%d\n",m);
                if(isprime(m))
                {
                        flag2=1;
                }
                m=move(m);
                if(isprime(m))
                {
                        flag3=1;
                }
                m=move(m);
                if(isprime(m))
                {
                        flag4=1;
                }
                m=move(m);
                if(isprime(m))
                {
                        flag5=1;
                }
               
                if(flag1&&flag2&&flag3&&flag4&&flag5)
                {
                        if(i>max)
                        {
                                max=i;
                        }
                }
        }
        printf("%d",max);
}
int isprime(int n)
{
        int flag=1;
        int i;
        for(i=2;i<=sqrt(n);i++)
        {
                if(n%i==0)
                {
                        flag=0;
                }
        }
        return flag;
}
int move(int n)
{
        int m,i,s;
        s=n;
        i=0;
        while(s!=0)
        {
                s/=10;
                i++;
        }
        //printf("i=%d\n",i);
        m=(n-(int)(n/pow(10,i-1))*pow(10,i-1))*10+(int)n/pow(10,i-1);
        return m;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 08:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表