一个写了好久好久才写出来的C语言题目,连续两天都写了两个小时,第三天用四十五分钟写出来了,开心。
程序运行时,从键盘输入正整数N,输出大于等于N的最小整数x,要求x是一个素数,且x的各个数字之和也是素数。
示例1输入:4
示例1输出:5
示例2输入:12
示例2输出:23
示例3输入:41
示例3输出:41
首先判断是否为素数,再求出各个数字的和,最后写个主函数得出结果。
在写的过程中犯了经典scanf缺&,最后一句缺;等问题,知道了主函数需要返回值。
#include<stdio.h> int pd(int x)//判断是否为素数 { int i; if(x<2) return 0; for(i=2;i<x;i++) { if(x%i==0) return 0; } return 1; } int gxs(int x)//找到各数字的和 { int y=0; while(x>0) { y=y+x%10; x=x/10; } return y; } int main() { int n,x,i; scanf("%d",&n); for(i=0; ;i++) { x=gxs(n); if(pd(n)==1&&pd(x)==1) { printf("%d",n); break;//break不写会进入死循环 } n++; } return 0; }