编写程序,要求:从键盘输入一个整数 n(4≤n≤999),判断其是否为素 数,如果是素数,判断其是否回文素数。如果不是,计算小于该数的所有素数和。
供参考:
#include<stdio.h>
int isPrime(int n)
{
int i;
if (n <= 3) return n > 1;
for (i = 2; i * i <= n; i++)
if (n % i == 0) return(0);
return(1);
}
int ispalindrome(int n)
{
int t=n, k=0;
while (t){
k = k * 10 + t % 10;
t /= 10;
}
return k == n;
}
int main()
{
int s=0, n;
scanf("%d",&n);
if (!isPrime(n) || !ispalindrome(n)){
while (n--)
if (isPrime(n)) s += n;
printf("%d", s);
}
return 0;
}
解答如下
#include <stdio.h>
int IsPrime(int n)
{
int i;
if (n==2)
return(1);
if (n==1)
return(0);
for(i=2; i*i<=n; i++)
if (n%i==0)
return(0);
return(1);
}
int Ishuiwenshu(int n)
{
int tem[5],p=0;
while(n)
{
tem[p++]=n%10;
n/=10;
}
for(int i=0; i<p/2; i++)
{
if(tem[i]!=tem[p-i-1])
{
return 0;
}
}
return 1;
}
int main()
{
int num;
scanf("%d",&num);
if(IsPrime(num))
{
printf("是素数\n");
if(Ishuiwenshu(num))
{
printf("是回文数\n");
{
return 1;
}
}
else
{
printf("小于该数的所有素数和:");
int sum=0;
for(int i=3; i<num; i++)
{
if(IsPrime(i))
{
sum+=i;
}
}
printf("%d\n",sum);
}
return 1;
}
else
{
printf("不是素数\n");
}
return 0;
}
C求素数三种简易方法!!!
https://blog.csdn.net/zhaocx111222333/article/details/109379498
判断素数,回文数网上都有代码。