如何用c语言编写程序输出500以内最大的10个素数及其之和
答案:4 悬赏:50 手机版
解决时间 2021-03-20 04:56
- 提问者网友:心如荒岛囚我终老
- 2021-03-19 16:26
如何用c语言编写程序输出500以内最大的10个素数及其之和
最佳答案
- 五星知识达人网友:woshuo
- 2021-03-19 18:03
- 算法简单,直接从500到1循环,判断每个数是否为素数,如果是素数,输出,并累加,一直判断出10个素数,终止循环,输出累加总数。
例程:
#include
int main(){
int prime;
int prime_pti[100];
int prime_z=0;
int i,n,p=0;
int a,b;
int step=0;
for(prime=i=1;i<=500;i++)
{
for(n=2;(n*n)<=i;n++)
{
if(i%n==0)
{
prime=0;
break;
}
}
if(prime)
{
prime_pti[p]=i;
p++;
}
prime=1;
}
for(a=0;a
if(prime_pti[a]
step=prime_pti[a];
prime_pti[a]=prime_pti[b];
prime_pti[b]=step;
}
}
if(p>9)
{
for(i=0;i<10;i++)
{
if(i<9)
printf("%d+",prime_pti[i]);
else
{
printf("%d=",prime_pti[i]);
for(n=0;n<10;n++)
prime_z+=prime_pti[n];
printf("%d
",prime_z);
}
}
}
else
printf("Sorry!
");
return 0;
}
全部回答
- 1楼网友:蓝房子
- 2021-03-19 20:33
#include
int main(void)
{
int n1,i,j,count=0,sum=0,a1=0;
printf("Input n(n<=500):");
scanf("%d",&n1);
for(i=n1;i>1;i--)
{
count=0;
for(j=i-1;j>0;j--)
{
if(i%j==0)
{
count++;
if(count==2)
{
break;
}
}
}
if(count==1)
{
a1++;
if(a1>10)
{
break;
}
printf("%6d",i);
sum=sum+i;
}
}
printf("\nsum=%d\n",sum);
return 0;
}
int main(void)
{
int n1,i,j,count=0,sum=0,a1=0;
printf("Input n(n<=500):");
scanf("%d",&n1);
for(i=n1;i>1;i--)
{
count=0;
for(j=i-1;j>0;j--)
{
if(i%j==0)
{
count++;
if(count==2)
{
break;
}
}
}
if(count==1)
{
a1++;
if(a1>10)
{
break;
}
printf("%6d",i);
sum=sum+i;
}
}
printf("\nsum=%d\n",sum);
return 0;
}
- 2楼网友:骨子里都是戏
- 2021-03-19 19:45
#include
int isPrime(int);
int main() {
int i = 500, count = 0;
do
if (isPrime(--i) && ++count)
printf("%d ", i);
while (count < 10);
return 0;
}
int isPrime(int n) {
int i;
if (n < 2)
return 0;
for (i = 2; i * i <= n; i++)
if (n % i == 0)
return 0;
return 1;
}
int isPrime(int);
int main() {
int i = 500, count = 0;
do
if (isPrime(--i) && ++count)
printf("%d ", i);
while (count < 10);
return 0;
}
int isPrime(int n) {
int i;
if (n < 2)
return 0;
for (i = 2; i * i <= n; i++)
if (n % i == 0)
return 0;
return 1;
}
- 3楼网友:一把行者刀
- 2021-03-19 19:09
#include
#include
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
break;
if(i>sqrt(n))
return 1;
else
return 0;
}
main()
{
int n,count=0,sum=0;
for(n=500;count!=10;n--)
if(prime(n))
{
printf("%d ",n);
sum+=n;
count++;
}
printf(" The sum is %d. ",sum);
}
#include
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
break;
if(i>sqrt(n))
return 1;
else
return 0;
}
main()
{
int n,count=0,sum=0;
for(n=500;count!=10;n--)
if(prime(n))
{
printf("%d ",n);
sum+=n;
count++;
}
printf(" The sum is %d. ",sum);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯