求助,WA 0,样例过了

#include<bits/stdc++.h>
using namespace std;

bool pd(int x)
{
	for(int i = 2;i * i <= x;i++)
	{
		if(x % i == 0) return 0;
	}
	return 1;
}

int js(int x)
{
	int cnt = 0;
	for(int i = 2;i * i <= x;i++)
	{
		if(x % i == 0 && pd(i))
		{
			cnt++;
		}
	}
	return cnt;
}

int main()
{
	int a,b,sum = 0;
	cin >> a;
	for(int i = 1;i <= a;i++)
	{
		cin >> b;
		cout << js(b) << "\n";
	}
	return 0;
 } 

全WA,但样例过了

4 个赞

在下不才求题面

4 个赞

如果我没猜错的话,这道题应该是问a个样例,求每个样例有多少质因子

4 个赞

题目是啥??

3 个赞

题面描述

输入若干个数,每个数位一个 int 类型的整数 x,需要返回这个数 x 所拥有的不同的质因数的个数。

例如数字 252 ,分解质因数为 252=2×2×3×3×7 ,那么它所拥有的不同质因数为 2,3,7 ,个数为 3 。

输入格式

第一行一个整数 q ,表示有 q 组询问。

接下去 q 行,每行包含一个正整数 x,表示一次询问。

输出格式

共 q 行,包含一个整数,表示一组询问的答案。

样例

样例输入

2
48
252

样例输出

2
3

数据范围

1≤q≤1000

2≤x≤106

1s, 256M
题目id_8454

2 个赞

题面描述

输入若干个数,每个数位一个 int 类型的整数 x,需要返回这个数 x 所拥有的不同的质因数的个数。

例如数字 252 ,分解质因数为 252=2×2×3×3×7 ,那么它所拥有的不同质因数为 2,3,7 ,个数为 3 。

输入格式

第一行一个整数 q ,表示有 q 组询问。

接下去 q 行,每行包含一个正整数 x,表示一次询问。

输出格式

共 q 行,包含一个整数,表示一组询问的答案。

样例

样例输入

2
48
252

样例输出

2
3

数据范围

1≤q≤1000

2≤x≤106

1s, 256M
::题目id_8454

1 个赞

已经解决了(就是“js”函数里的循环改成“for (int x = 2; x <= n; x++)”

1 个赞

for循坏里面改成for(int i = 2; i<x; i++)试试

1 个赞

球完整代码

大哥,发不了

你的质因子只会有一次,如4你就只能有一个二,你在每次IF里把i归回一

那怎么做

看思路,不能给完整代码,会禁言

你在js的if里cnt++下面把i=2加上

质因子会重复吧

核心代码