#include<iostream>
using namespace std;
bool gt(int num){//判断是否为素数
unsigned long long int a=0,q;
for(q=2;q<num-1;q++){
if(num%q==0)
a++;
}
if(a==0)
return true;
else
return false;
}
bool isfive(int c){//判断素数中包含5的个数
while(c>0){
if(c%10==5)
return true;
c=c/10;
}
}
int main(){
int k=0;
unsigned long long int i=2,j;
for(i=2;i<=9999;i++){//为什么超过四位数就不能输出了运行了
if(gt(i))
{
j=i;
if(isfive(j))
k++;
}
}
cout<<i<<endl;
cout<<k;
return 0;
}
该源码测试没有问题,这样改程序效率更高一些:
#include "stdio.h"
int gt(int num){//判断是否为素数
int a=0,q;
//排除1和num自己就可以了,不需要减一
for(q=2;q<num;q++){
if(num%q==0){
a=1;
break;
}
}
return a;
}
int isfive(int c){//判断素数中包含5的个数
while(c>0){
if(c%10==5)
return 1;
c=c/10;
}
}
int main(){
int k=0;
int i=2;
for(i=2;i<=99999;i++){
if(gt(i))
{
if(isfive(i))
k++;
}
}
printf("i=%d,k=%d\n",i,k);
return 0;
}
学习C语言更多技术,请参考:https://edu.csdn.net/course/detail/2766
0基础学C语言:https://edu.csdn.net/course/detail/2766
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632