欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matlab 欧拉计划 35

程序员文章站 2022-03-31 20:46:28
...

problem 35

The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime.
There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97.
How many circular primes are there below one million?

思路

1.要求:找到1000000以内所有的循环质数(即本身及由其循环所得数都为质数),求出这些数的个数;
2.这道题重点应该在循环数这里:一个由n为数字组成的数,(按一个方向循环),可以循环(n-1)次。判断一个数字是否为循环质数,只要判断该数字组成的n个数字(本身+n-1个循环数)都为质数即可。

程序

clc;clear all;
z=[];
for i=1:1e6
    x=num2str(i);
    h=1;
    y=str2num(x);
    if isprime(y)
        for j=1:length(x)-1
                t=x(1);
                x(1:end-1)=x(2:end);
                x(end)=t;
                y=str2num(x);
            if isprime(y)
                h=h+1;
            end
        end
        if h==length(x)
            z=[z,i];
        end
    end
end
相关标签: matlab euler 35