分析题目思路: 我先定义number,temp,red,i,count,isPrime=1;先判断是不是素数后再判断每一位是不是2,3,5,7;也使用sqrt()函数是程序简单,temp=number,再用for循环结束后用if(temp==0)让count++;或者前面用不是纯质数先count--后count++也行,这些就是我思路。
看以下程序 :
public class chuenzhishu
{
public static void main(String[]args)
{ int number;//它是正整数
int i;
int temp;//临时保存number
int red;
int count=0;//计数有多少个纯质数
int isPrime;// 1是素数,0不是素数
for(number=1;number<20210606;number++)
{ isPrime=1;
for(i=2;i<=Math.sqrt(number);i++)//用sqrt函数减小循rt环,如果不等于sqrt(number)会多一个25这个数。
{
if(number%i==0)//判断是不是素数
{
isPrime=0;
break;
}
}
if(isPrime==1)
{
for(temp=number;temp!=0;temp/=10)
{
red=temp%10;
if(red==2||red==3||red==5||red==7)//判断每一位是不是2,3,5,7;
{
continue;
}
else
{
break;//跳出循环
}
}
if(temp==0)//判断前面for循环执行完没有,执行完后count++;
{count++;}
}
}
System.out.printf("1-20210605其中纯质数个数为%d",count);
}
}
或者这个程序:
public class chuenzhishu
{
public static void main(String[]args)
{ int number;//它是正整数
int i;
int temp;//临时保存number
int red;
int count=0;//计数有多少个纯质数
int isPrime;// 1是素数,0不是素数
for(number=1;number<20210606;number++)
{ isPrime=1;
for(i=2;i<=Math.sqrt(number);i++)//用sqrt函数减小循rt环,如果不等于sqrt(number)会多一个25这个数。
{
if(number%i==0)//判断是不是素数
{
isPrime=0;
break;
}
}
if(isPrime==1)
{
for(temp=number;temp!=0;temp/=10)
{
red=temp%10;
if(red==2||red==3||red==5||red==7)//判断每一位是不是2,3,5,7;
{
continue;
}
else
{
count--;//如果不是纯质数先减1跳出循环后再加会来;
break;//跳出循环
}
}
count++;
}
}
System.out.printf("1-20210605其中纯质数个数为%d",count);
}
}
运行结果为: 谢谢大家观看,我希望这个程序可以帮助您!