发布网友 发布时间:2024-12-22 15:06
共4个回答
热心网友 时间:2024-12-22 20:13
你这代码看得太费劲了,还要去猜测你的变量是什么意思
多分析下,整理下思路,再写程序好一点
这个题目,输入的所有数都是3位数,加点简单的判断就行了
先写个判断是不是素数的程序:
my_jugment(int a){}
main(){
int flag=0; //统计个数
for(i=200;i<1000;i++)
if(当前 i 是素数) {
tmp=i%100;
if(tmp>10 && tmp是素数) { //tmp大于10 就保证了第二位不是0
tmp1=tmp%10;
if(tmp1>0 && tmp1是素数) flag++;
//tmp1>0就保证最后一位不是0
}
}
printf("%d\n",flag);
}
收工
热心网友 时间:2024-12-22 20:16
//看了你的代码,开始试着改,发现越改越烦,最后还是自己写一个正规一点的代码吧,也当是你以后模仿一下
#include<iostream>
#include<cmath>
using namespace std;
int isooc(int n)
{
int t;
while (n)
{
t=n%10;
if(t==0) return 0;
n/=10;
}
return 1;
}
int isprime(int n)
{
int i;
for(i=2;i<=(int)sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
void main()
{
int n,i,count=0;
for(n=200;n<=999;n++)
{
if(isooc(n) && isprime(n) &&isprime(n%100) && isprime(n%10))
count++;
}
cout<<count<<endl;
}
热心网友 时间:2024-12-22 20:14
#include<iostream>
using namespace std;
int isPrime(int n);
int main(){
int a,b,c;
for(a=201; a<1000; a+=2){
if(isPrime(a)==0) //不是素数
continue;
b=a%100;
if(b<10)
continue; //十位上是0
if(isPrime(b)==0) //不是素数
continue;
c=a%10;
if(c==1)
continue; //1不是素数
if(isPrime(c)==0) //不是素数
continue;
cout <<a <<", " <<b <<", " <<c <<endl;
}
return 0;
}
int isPrime(int n){
int f=1;
for(int i=2; f && i<n/2; i++)
f=n%i;
return f;
}
热心网友 时间:2024-12-22 20:15
#include <iostream>
using namespace std;
int isprime(int i)
{
int j=2;
for(j=2;j<i;j++)
if(i%j==0)
return 0;
return 1;
}
int main()
{
int a,n=0,t1=0,t2=0,t3=0,q[2];
for(a=200;a<1000;a++)
{
q[0]=a%10;
q[1]=a%100;
t1=a/100;
t2=a/10%10;
t3=a%10;
if(isprime(a) && isprime(q[0]) && isprime(q[1]) && t1 && t2 && t3)
n++;
}
cout<<n<<endl;
return 0;
}
运行结果是:51
你的程序写的有点复杂。
我把你的程序改了一下。